* device/include/pic16/pic18f[24][3456]k20.h,
authortecodev <tecodev@4a8a32a2-be11-0410-ad9d-d568d2c75423>
Fri, 27 Feb 2009 13:03:40 +0000 (13:03 +0000)
committertecodev <tecodev@4a8a32a2-be11-0410-ad9d-d568d2c75423>
Fri, 27 Feb 2009 13:03:40 +0000 (13:03 +0000)
  device/include/pic16/pic18f[68][567]j50.h,
  device/include/pic16/pic18f[68]6j55.h,
  device/lib/pic16/libdev/pic18f[24][3456]k20.c,
  device/lib/pic16/libdev/pic18f[68][567]j50.c,
  device/lib/pic16/libdev/pic18f[68]6j55.c,
  device/include/pic16/pic18fregs.h,
  device/include/pic16/pic16devices.txt,
  device/lib/pic16/pics.all,
  device/lib/pic16/libdev/Makefile.am,
  device/lib/pic16/libio/Makefile.am: added/re-enabled many device
  families (87j50 family contributed by Robert Wuest)

* device/include/pic16/adc.h,
  device/lib/pic16/libio/adc/adcbusy.c,
  device/lib/pic16/libio/adc/adcclose.c,
  device/lib/pic16/libio/adc/adcconv.c,
  device/lib/pic16/libio/adc/adcopen.c,
  device/lib/pic16/libio/adc/adcsetch.c: added 65j50-style ADC

* doc/sdccman.lyx: updated list of supported devices, fixed typo
* device/lib/pic16/Makefile.common: do not suppress assembler warnings

git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@5391 4a8a32a2-be11-0410-ad9d-d568d2c75423

46 files changed:
ChangeLog
device/include/pic16/adc.h
device/include/pic16/pic16devices.txt
device/include/pic16/pic18f23k20.h [new file with mode: 0644]
device/include/pic16/pic18f24k20.h [new file with mode: 0644]
device/include/pic16/pic18f25k20.h [new file with mode: 0644]
device/include/pic16/pic18f26k20.h [new file with mode: 0644]
device/include/pic16/pic18f43k20.h [new file with mode: 0644]
device/include/pic16/pic18f44k20.h [new file with mode: 0644]
device/include/pic16/pic18f45k20.h [new file with mode: 0644]
device/include/pic16/pic18f46k20.h [new file with mode: 0644]
device/include/pic16/pic18f65j50.h [new file with mode: 0644]
device/include/pic16/pic18f66j50.h [new file with mode: 0644]
device/include/pic16/pic18f66j55.h [new file with mode: 0644]
device/include/pic16/pic18f67j50.h [new file with mode: 0644]
device/include/pic16/pic18f85j50.h [new file with mode: 0644]
device/include/pic16/pic18f86j50.h [new file with mode: 0644]
device/include/pic16/pic18f86j55.h [new file with mode: 0644]
device/include/pic16/pic18f87j50.h [new file with mode: 0644]
device/include/pic16/pic18fregs.h
device/lib/pic16/Makefile.common
device/lib/pic16/libdev/Makefile.am
device/lib/pic16/libdev/pic18f23k20.c [new file with mode: 0644]
device/lib/pic16/libdev/pic18f24k20.c [new file with mode: 0644]
device/lib/pic16/libdev/pic18f25k20.c [new file with mode: 0644]
device/lib/pic16/libdev/pic18f26k20.c [new file with mode: 0644]
device/lib/pic16/libdev/pic18f43k20.c [new file with mode: 0644]
device/lib/pic16/libdev/pic18f44k20.c [new file with mode: 0644]
device/lib/pic16/libdev/pic18f45k20.c [new file with mode: 0644]
device/lib/pic16/libdev/pic18f46k20.c [new file with mode: 0644]
device/lib/pic16/libdev/pic18f65j50.c [new file with mode: 0644]
device/lib/pic16/libdev/pic18f66j50.c [new file with mode: 0644]
device/lib/pic16/libdev/pic18f66j55.c [new file with mode: 0644]
device/lib/pic16/libdev/pic18f67j50.c [new file with mode: 0644]
device/lib/pic16/libdev/pic18f85j50.c [new file with mode: 0644]
device/lib/pic16/libdev/pic18f86j50.c [new file with mode: 0644]
device/lib/pic16/libdev/pic18f86j55.c [new file with mode: 0644]
device/lib/pic16/libdev/pic18f87j50.c [new file with mode: 0644]
device/lib/pic16/libio/Makefile.am
device/lib/pic16/libio/adc/adcbusy.c
device/lib/pic16/libio/adc/adcclose.c
device/lib/pic16/libio/adc/adcconv.c
device/lib/pic16/libio/adc/adcopen.c
device/lib/pic16/libio/adc/adcsetch.c
device/lib/pic16/pics.all
doc/sdccman.lyx

index 6bd22b126df7e10caf5b755d0f16d798e5ee7b93..160ffde5d378c523532754bf8e1b01bab4099c1a 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,28 @@
+2009-02-27 Raphael Neider <rneider AT web.de>
+
+       * device/include/pic16/pic18f[24][3456]k20.h,
+         device/include/pic16/pic18f[68][567]j50.h,
+         device/include/pic16/pic18f[68]6j55.h,
+         device/lib/pic16/libdev/pic18f[24][3456]k20.c,
+         device/lib/pic16/libdev/pic18f[68][567]j50.c,
+         device/lib/pic16/libdev/pic18f[68]6j55.c,
+         device/include/pic16/pic18fregs.h,
+         device/include/pic16/pic16devices.txt,
+         device/lib/pic16/pics.all,
+         device/lib/pic16/libdev/Makefile.am,
+         device/lib/pic16/libio/Makefile.am: added/re-enabled many device
+         families (87j50 family contributed by Robert Wuest)
+
+       * device/include/pic16/adc.h,
+         device/lib/pic16/libio/adc/adcbusy.c,
+         device/lib/pic16/libio/adc/adcclose.c,
+         device/lib/pic16/libio/adc/adcconv.c,
+         device/lib/pic16/libio/adc/adcopen.c,
+         device/lib/pic16/libio/adc/adcsetch.c: added 65j50-style ADC
+
+       * doc/sdccman.lyx: updated list of supported devices, fixed typo
+       * device/lib/pic16/Makefile.common: do not suppress assembler warnings
+
 2009-02-27 Borut Razem <borut.razem AT siol.net>
 
        * as/z80/asexpr.c, as/z80/z80mch.c: re-fixed bugs
index fad47b73305aff0d5ead1cd2b4800d6b713a8f3c..27f909494db243a428b319aaceca80d5fa9885fb 100644 (file)
 #define ADC_FOSC_64    0x06
 #define ADC_FOSC_RC    0x07
 
+/*
+ * acquisition time (65j50-style only)
+ * -- to be ORed with ADC_FOSC
+ */
+#define ADC_ACQT_0      (0x00 << 3)
+#define ADC_ACQT_2      (0x01 << 3)
+#define ADC_ACQT_4      (0x02 << 3)
+#define ADC_ACQT_6      (0x03 << 3)
+#define ADC_ACQT_8      (0x04 << 3)
+#define ADC_ACQT_12     (0x05 << 3)
+#define ADC_ACQT_16     (0x06 << 3)
+#define ADC_ACQT_20     (0x07 << 3)
+
+/*
+ * calibration enable (65j50-style only)
+ * -- to be ORed with ADC_FOSC
+ */
+#define ADC_CAL         0x40
 
 /*
- * Distinguish between 18f242-style, 18f1220-style, and 18f2220-style ADC:
+ * Distinguishing between ADC-styles:
  *
  * ADCON0:
- * bit  18f242  18f1220 18f2220
- *  0   ADON    ADON    ADON
- *  1   -       GO      GO
- *  2   GO      CHS0    CHS0
- *  3   CHS0    CHS1    CHS1
- *  4   CHS1    CHS2    CHS2
- *  5   CHS2    -       CHS3
- *  6   ADCS0   VCFG0   -
- *  7   ADCS1   VCFG1   (ADCAL)
+ * bit  18f242  18f1220 18f2220 18f65j50
+ *  0   ADON    ADON    ADON    ADON
+ *  1   -       GO      GO      GO
+ *  2   GO      CHS0    CHS0    CHS0
+ *  3   CHS0    CHS1    CHS1    CHS1
+ *  4   CHS1    CHS2    CHS2    CHS2
+ *  5   CHS2    -       CHS3    CHS3
+ *  6   ADCS0   VCFG0   -       VCFG0
+ *  7   ADCS1   VCFG1   (ADCAL) VCFG1
  *
  * ADCON1:
- *  bit 18f242  18f1220 18f2220
- *   0  PCFG0   PCFG0   PCFG0
- *   1  PCFG1   PCFG1   PCFG1
- *   2  PCFG2   PCFG2   PCFG2
- *   3  PCFG3   PCFG3   PCFG3
- *   4  -       PCFG4   VCFG0
- *   5  -       PCFG5   VCFG1
- *   6  ADCS2   PCFG6   -
- *   7  ADFM    -       -
+ *  bit 18f242  18f1220 18f2220 18f65j50
+ *   0  PCFG0   PCFG0   PCFG0   ADCS0
+ *   1  PCFG1   PCFG1   PCFG1   ADCS1
+ *   2  PCFG2   PCFG2   PCFG2   ADCS2
+ *   3  PCFG3   PCFG3   PCFG3   ACQT0
+ *   4  -       PCFG4   VCFG0   ACQT1
+ *   5  -       PCFG5   VCFG1   ACQT2
+ *   6  ADCS2   PCFG6   -       ADCAL
+ *   7  ADFM    -       -       ADFM
  */
 
 /* 18f242-style */
 /* 18f2220-style, ordered by device family */
 #elif  defined(pic18f2220) || defined(pic18f2320) || defined(pic18f4220) || defined(pic18f4320) \
     || defined(pic18f2221) || defined(pic18f2321) || defined(pic18f4221) || defined(pic18f4321) \
+    || defined(pic18f23k20) || defined(pic18f24k20) || defined(pic18f25k20) || defined(pic18f26k20) \
     || defined(pic18f2410) || defined(pic18f2510) || defined(pic18f4410) || defined(pic18f4510) \
     || defined(pic18f2420) || defined(pic18f2520) || defined(pic18f4420) || defined(pic18f4520) \
     || defined(pic18f2423) || defined(pic18f2523) || defined(pic18f4423) || defined(pic18f4523) \
     || defined(pic18f2525) || defined(pic18f2620) || defined(pic18f4525) || defined(pic18f4620) \
     || defined(pic18f2585) || defined(pic18f2680) || defined(pic18f4585) || defined(pic18f4680) \
     || defined(pic18f2682) || defined(pic18f2685) || defined(pic18f4682) || defined(pic18f4685) \
+    || defined(pic18f43k20) || defined(pic18f44k20) || defined(pic18f45k20) || defined(pic18f46k20) \
     || defined(pic18f6520) || defined(pic18f6620) || defined(pic18f6720) \
     || defined(pic18f6585) || defined(pic18f6680) || defined(pic18f8585) || defined(pic18f8680) \
     || defined(pic18f66j60) || defined(pic18f66j65) || defined(pic18f67j60) \
 
 #define __SDCC_ADC_STYLE2220    1
 
+#elif defined(pic18f65j50) || defined(pic18f66j50) || defined(pic18f66j55) || defined(pic18f67j50) \
+   || defined(pic18f85j50) || defined(pic18f86j50) || defined(pic18f86j55) || defined(pic18f87j50) \
+
+#define __SDCC_ADC_STYLE65J50
+
 #else /* unknown device */
 
 #error Device ADC style is unknown, please update your adc.h manually and/or inform the maintainer!
 #define ADC_CFG_01A_2R  0x3e
 #define ADC_CFG_00A_0R  0x0f
 
+#elif defined(__SDCC_ADC_STYLE65J50)
+
+/*
+ * These devices use a bitmask in ANCON0/1 to configure
+ * AN7..0/AN15..8 as digital ports (bit set) or analog
+ * inputs (bit clear).
+ *
+ * These settings are selected based on their similarity with
+ * the 2220-style settings; 65j50-style is more flexible, though.
+ *
+ * Reference voltages are configured via adc_open's config parameter
+ * using ADC_VCFG_*.
+ */
+
+#define ADC_CFG_16A     0x0000
+#define ADC_CFG_15A     0x8000
+#define ADC_CFG_14A     0xC000
+#define ADC_CFG_13A     0xE000
+#define ADC_CFG_12A     0xF000
+#define ADC_CFG_11A     0xF800
+#define ADC_CFG_10A     0xFC00
+#define ADC_CFG_9A      0xFE00
+#define ADC_CFG_8A      0xFF00
+#define ADC_CFG_7A      0xFF80
+#define ADC_CFG_6A      0xFFC0
+#define ADC_CFG_5A      0xFFE0
+#define ADC_CFG_4A      0xFFF0
+#define ADC_CFG_3A      0xFFF8
+#define ADC_CFG_2A      0xFFFC
+#define ADC_CFG_1A      0xFFFE
+#define ADC_CFG_0A      0xFFFF
+
 #else   /* unhandled ADC style */
 
 #error No supported ADC style selected.
 
 
 /* initialize AD module */
+#if defined(__SDCC_ADC_STYLE65J50)
+void adc_open(unsigned char channel, unsigned char fosc, unsigned int pcfg, unsigned char config);
+#else
 void adc_open(unsigned char channel, unsigned char fosc, unsigned char pcfg, unsigned char config);
+#endif
 
 /* shutdown AD module */
 void adc_close(void);
index 45aec7d46521c2eb45bf43e150158f0e79e553f6..a17cab09861e8e28dfe998d9f0c123ba5b1a4ebc 100644 (file)
@@ -122,6 +122,24 @@ configword  0x30000d 0x40 0xff
 idlocrange  0x200000 0x200007
 
 
+name        18f23k20
+ramsize     512
+split       0x60
+configrange 0x300001 0x30000d
+configword  0x300001 0xcf 0x37
+configword  0x300002 0x1f 0xff
+configword  0x300003 0x1f 0xff
+configword  0x300005 0x8f 0xfb
+configword  0x300006 0xc5 0xbf 0xbf
+configword  0x300008 0x0f 0xff
+configword  0x300009 0xc0 0xff
+configword  0x30000a 0x0f 0xff
+configword  0x30000b 0xe0 0xff
+configword  0x30000c 0x0f 0xff
+configword  0x30000d 0x40 0xff
+idlocrange  0x200000 0x200007
+
+
 name        18f2410
 ramsize     768
 split       0x80
@@ -283,6 +301,11 @@ configword  0x300005 0x01 0xff
 idlocrange  0x200000 0x200007
 
 
+name        18f24k20
+using       18f23k20
+ramsize     768
+
+
 name        18f2510
 using       18f2410
 ramsize     1536
@@ -362,6 +385,11 @@ name        18f25j10
 using       18f24j10
 
 
+name        18f25k20
+using       18f23k20
+ramsize     1536
+
+
 name        18f2610
 using       18f2410
 ramsize     4096
@@ -397,6 +425,11 @@ name        18f2685
 using       18f2682
 
 
+name        18f26k20
+using       18f23k20
+ramsize     3936
+
+
 name        18f4220
 using       18f2220
 
@@ -417,6 +450,10 @@ name        18f4331
 using       18f2331
 
 
+name        18f43k20
+using       18f23k20
+
+
 name        18f4410
 using       18f2410
 ramsize     768
@@ -457,6 +494,11 @@ name        18f44j10
 using       18f24j10
 
 
+name        18f44k20
+using       18f23k20
+ramsize     768
+
+
 name        18f4510
 using       18f2410
 ramsize     1536
@@ -507,6 +549,11 @@ name        18f45j10
 using       18f24j10
 
 
+name        18f45k20
+using       18f23k20
+ramsize     1536
+
+
 name        18f4610
 using       18f2410
 ramsize     4096
@@ -528,6 +575,11 @@ name        18f4685
 using       18f2682
 
 
+name        18f46k20
+using       18f23k20
+ramsize     3936
+
+
 name        18f6520
 ramsize     2048
 split       0x60
@@ -566,6 +618,18 @@ configword  0x30000d 0x40 0xff
 idlocrange  0x200000 0x200007
 
 
+name        18f65j50
+ramsize     3904
+split       0x60
+configrange 0x7ff8 0x7ffd
+configword  0x7ff8 0xef 0xff 0xbf
+configword  0x7ff9 0x07 0xff
+configword  0x7ffa 0xc7 0xff
+configword  0x7ffb 0x0f 0xff
+configword  0x7ffc 0xf8 0xff
+configword  0x7ffd 0x0f 0xff
+
+
 name        18f6620
 using       18f6520
 ramsize     3840
@@ -574,12 +638,47 @@ ramsize     3840
 name        18f6680
 using       18f6585
 
+name        18f66j50
+ramsize     3904
+split       0x60
+configrange 0xfff8 0xfffd
+configword  0xfff8 0xef 0xff 0xbf
+configword  0xfff9 0x07 0xff
+configword  0xfffa 0xc7 0xff
+configword  0xfffb 0x0f 0xff
+configword  0xfffc 0xf8 0xff
+configword  0xfffd 0x0f 0xff
+
+
+name        18f66j55
+ramsize     3904
+split       0x60
+configrange 0x17ff8 0x17ffd
+configword  0x17ff8 0xef 0xff 0xbf
+configword  0x17ff9 0x07 0xff
+configword  0x17ffa 0xc7 0xff
+configword  0x17ffb 0x0f 0xff
+configword  0x17ffc 0xf8 0xff
+configword  0x17ffd 0x0f 0xff
+
 
 name        18f6720
 using       18f6520
 ramsize     3840
 
 
+name        18f67j50
+ramsize     3904
+split       0x60
+configrange 0x1fff8 0x1fffd
+configword  0x1fff8 0xef 0xff 0xbf
+configword  0x1fff9 0x07 0xff
+configword  0x1fffa 0xc7 0xff
+configword  0x1fffb 0x0f 0xff
+configword  0x1fffc 0xf8 0xff
+configword  0x1fffd 0x0f 0xff
+
+
 name        18f8520
 using       18f6520
 
@@ -638,6 +737,18 @@ configword  0x1fffc 0xf8 0xff
 configword  0x1fffd 0x07 0xff
 
 
+name        18f85j50
+using       18f65j50
+
+
+name        18f86j50
+using       18f66j50
+
+
+name        18f86j55
+using       18f66j55
+
+
 name        18f86j60
 using       18f66j60
 
@@ -646,6 +757,10 @@ name        18f86j65
 using       18f66j65
 
 
+name        18f87j50
+using       18f67j50
+
+
 name        18f87j60
 using       18f67j60
 
diff --git a/device/include/pic16/pic18f23k20.h b/device/include/pic16/pic18f23k20.h
new file mode 100644 (file)
index 0000000..2b8f3d2
--- /dev/null
@@ -0,0 +1,6 @@
+/*
+ * pic18f23k20.h - device specific declarations
+ */
+
+#include "pic18f46k20.h"
+
diff --git a/device/include/pic16/pic18f24k20.h b/device/include/pic16/pic18f24k20.h
new file mode 100644 (file)
index 0000000..c54718b
--- /dev/null
@@ -0,0 +1,6 @@
+/*
+ * pic18f24k20.h - device specific declarations
+ */
+
+#include "pic18f46k20.h"
+
diff --git a/device/include/pic16/pic18f25k20.h b/device/include/pic16/pic18f25k20.h
new file mode 100644 (file)
index 0000000..40f1794
--- /dev/null
@@ -0,0 +1,6 @@
+/*
+ * pic18f25k20.h - device specific declarations
+ */
+
+#include "pic18f46k20.h"
+
diff --git a/device/include/pic16/pic18f26k20.h b/device/include/pic16/pic18f26k20.h
new file mode 100644 (file)
index 0000000..3b4b796
--- /dev/null
@@ -0,0 +1,6 @@
+/*
+ * pic18f26k20.h - device specific declarations
+ */
+
+#include "pic18f46k20.h"
+
diff --git a/device/include/pic16/pic18f43k20.h b/device/include/pic16/pic18f43k20.h
new file mode 100644 (file)
index 0000000..006f241
--- /dev/null
@@ -0,0 +1,6 @@
+/*
+ * pic18f43k20.h - device specific declarations
+ */
+
+#include "pic18f46k20.h"
+
diff --git a/device/include/pic16/pic18f44k20.h b/device/include/pic16/pic18f44k20.h
new file mode 100644 (file)
index 0000000..c9f2345
--- /dev/null
@@ -0,0 +1,6 @@
+/*
+ * pic18f44k20.h - device specific declarations
+ */
+
+#include "pic18f46k20.h"
+
diff --git a/device/include/pic16/pic18f45k20.h b/device/include/pic16/pic18f45k20.h
new file mode 100644 (file)
index 0000000..5e5b485
--- /dev/null
@@ -0,0 +1,6 @@
+/*
+ * pic18f45k20.h - device specific declarations
+ */
+
+#include "pic18f46k20.h"
+
diff --git a/device/include/pic16/pic18f46k20.h b/device/include/pic16/pic18f46k20.h
new file mode 100644 (file)
index 0000000..c88163e
--- /dev/null
@@ -0,0 +1,1706 @@
+/*
+ * pic18f46k20.h - device specific declarations
+ *
+ * This file is part of the GNU PIC library for SDCC,
+ * originally devised by Vangelis Rokas <vrokas AT otenet.gr>
+ *
+ * It has been automatically generated by inc2h-pic16.pl,
+ * (c) 2007 by Raphael Neider <rneider AT web.de>
+ */
+
+#ifndef __PIC18F46K20_H__
+#define __PIC18F46K20_H__ 1
+
+
+
+// Configuration Bits
+#define        __CONFIG1H              0x300001
+#define        __CONFIG2L              0x300002
+#define        __CONFIG2H              0x300003
+#define        __CONFIG3H              0x300005
+#define        __CONFIG4L              0x300006
+#define        __CONFIG5L              0x300008
+#define        __CONFIG5H              0x300009
+#define        __CONFIG6L              0x30000A
+#define        __CONFIG6H              0x30000B
+#define        __CONFIG7L              0x30000C
+#define        __CONFIG7H              0x30000D
+
+// CONFIG1H Options
+#define        _OSC_LP_1H              0xF0     // LP
+#define        _OSC_XT_1H              0xF1     // XT
+#define        _OSC_HS_1H              0xF2     // HS
+#define        _OSC_RC_1H              0xF3     // RC
+#define        _OSC_EC_1H              0xF4     // EC-OSC2 as Clock Out
+#define        _OSC_ECIO6_1H           0xF5     // EC-OSC2 as RA6
+#define        _OSC_HSPLL_1H           0xF6     // HS-PLL Enabled
+#define        _OSC_RCIO6_1H           0xF7     // RC-OSC2 as RA6
+#define        _OSC_INTIO67_1H         0xF8     // INTRC-OSC2 as RA6, OSC1 as RA7
+#define        _OSC_INTIO7_1H          0xF9     // INTRC-OSC2 as Clock Out, OSC1 as RA7
+#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        _PWRT_ON_2L             0xFE     // Enabled
+#define        _PWRT_OFF_2L            0xFF     // Disabled
+#define        _BOREN_OFF_2L           0xF9     // Disabled
+#define        _BOREN_ON_2L            0xFB     // SBOREN Enabled
+#define        _BOREN_NOSLP_2L         0xFD     // Enabled except SLEEP, SBOREN Disabled
+#define        _BOREN_SBORDIS_2L       0xFF     // Enabled, SBOREN Disabled
+#define        _BORV_46_2L             0xE7     // 3.0V
+#define        _BORV_43_2L             0xEF     // 2.7V
+#define        _BORV_28_2L             0xF7     // 2.2V
+#define        _BORV_21_2L             0xFF     // 1.8
+
+// CONFIG2H Options
+#define        _WDT_OFF_2H             0xFE     // Disabled
+#define        _WDT_ON_2H              0xFF     // Enabled
+#define        _WDTPS_1_2H             0xE1     // 1:1
+#define        _WDTPS_2_2H             0xE3     // 1:2
+#define        _WDTPS_4_2H             0xE5     // 1:4
+#define        _WDTPS_8_2H             0xE7     // 1:8
+#define        _WDTPS_16_2H            0xE9     // 1:16
+#define        _WDTPS_32_2H            0xEB     // 1:32
+#define        _WDTPS_64_2H            0xED     // 1:64
+#define        _WDTPS_128_2H           0xEF     // 1:128
+#define        _WDTPS_256_2H           0xF1     // 1:256
+#define        _WDTPS_512_2H           0xF3     // 1:512
+#define        _WDTPS_1024_2H          0xF5     // 1:1024
+#define        _WDTPS_2048_2H          0xF7     // 1:2048
+#define        _WDTPS_4096_2H          0xF9     // 1:4096
+#define        _WDTPS_8192_2H          0xFB     // 1:8192
+#define        _WDTPS_16384_2H         0xFD     // 1:16384
+#define        _WDTPS_32768_2H         0xFF     // 1:32768
+
+// CONFIG3H Options
+#define        _MCLRE_OFF_3H           0x7F     // Disabled
+#define        _MCLRE_ON_3H            0xFF     // Enabled
+#define        _LPT1OSC_OFF_3H         0xFB     // Disabled
+#define        _LPT1OSC_ON_3H          0xFF     // Enabled
+#define        _PBADEN_OFF_3H          0xFD     // Port B<4:0> digital on RESET
+#define        _PBADEN_ON_3H           0xFF     // Port B<4:0> analog on RESET
+#define        _CCP2MX_PORTBE_3H       0xFE     // Muxed with RB3
+#define        _CCP2MX_PORTC_3H        0xFF     // Muxed with RC1
+
+// CONFIG4L Options
+#define        _STVREN_OFF_4L          0xFE     // Disabled
+#define        _STVREN_ON_4L           0xFF     // Enabled
+#define        _LVP_OFF_4L             0xFB     // Disabled
+#define        _LVP_ON_4L              0xFF     // Enabled
+#define        _XINST_OFF_4L           0xBF     // Disabled
+#define        _XINST_ON_4L            0xFF     // Enabled
+#define        _DEBUG_ON_4L            0x7F     // Enabled
+#define        _DEBUG_OFF_4L           0xFF     // Disabled
+
+// 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        _WRTB_ON_6H             0xBF     // Enabled
+#define        _WRTB_OFF_6H            0xFF     // Disabled
+#define        _WRTC_ON_6H             0xDF     // Enabled
+#define        _WRTC_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
+
+extern __sfr __at (0xF77) SSPMSK;
+
+extern __sfr __at (0xF78) SLRCON;
+typedef union {
+       struct {
+               unsigned SLRA           : 1;
+               unsigned SLRB           : 1;
+               unsigned SLRC           : 1;
+               unsigned SLRD           : 1;
+               unsigned SLRE           : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+       };
+} __SLRCONbits_t;
+extern volatile __SLRCONbits_t __at (0xF78) SLRCONbits;
+
+extern __sfr __at (0xF79) CM12CON;
+typedef union {
+       struct {
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned C2RSEL         : 1;
+               unsigned C1RSEL         : 1;
+               unsigned MC2OUT         : 1;
+               unsigned MC1OUT         : 1;
+       };
+} __CM12CONbits_t;
+extern volatile __CM12CONbits_t __at (0xF79) CM12CONbits;
+
+extern __sfr __at (0xF7A) CM2CON;
+typedef union {
+       struct {
+               unsigned C2CH0          : 1;
+               unsigned C2CH1          : 1;
+               unsigned C2R            : 1;
+               unsigned C2SP           : 1;
+               unsigned C2POL          : 1;
+               unsigned C2OE           : 1;
+               unsigned C2OUT          : 1;
+               unsigned C2ON           : 1;
+       };
+} __CM2CONbits_t;
+extern volatile __CM2CONbits_t __at (0xF7A) CM2CONbits;
+
+extern __sfr __at (0xF7B) CM1CON;
+typedef union {
+       struct {
+               unsigned C1CH0          : 1;
+               unsigned C1CH1          : 1;
+               unsigned C1R            : 1;
+               unsigned C1SP           : 1;
+               unsigned C1POL          : 1;
+               unsigned C1OE           : 1;
+               unsigned C1OUT          : 1;
+               unsigned C1ON           : 1;
+       };
+} __CM1CONbits_t;
+extern volatile __CM1CONbits_t __at (0xF7B) CM1CONbits;
+
+extern __sfr __at (0xF7C) WPUB;
+typedef union {
+       struct {
+               unsigned WPUB0          : 1;
+               unsigned WPUB1          : 1;
+               unsigned WPUB2          : 1;
+               unsigned WPUB3          : 1;
+               unsigned WPUB4          : 1;
+               unsigned WPUB5          : 1;
+               unsigned WPUB6          : 1;
+               unsigned WPUB7          : 1;
+       };
+} __WPUBbits_t;
+extern volatile __WPUBbits_t __at (0xF7C) WPUBbits;
+
+extern __sfr __at (0xF7D) IOCB;
+typedef union {
+       struct {
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned IOCB4          : 1;
+               unsigned IOCB5          : 1;
+               unsigned IOCB6          : 1;
+               unsigned IOCB7          : 1;
+       };
+} __IOCBbits_t;
+extern volatile __IOCBbits_t __at (0xF7D) IOCBbits;
+
+extern __sfr __at (0xF7E) ANSEL;
+typedef union {
+       struct {
+               unsigned ANS0           : 1;
+               unsigned ANS1           : 1;
+               unsigned ANS2           : 1;
+               unsigned ANS3           : 1;
+               unsigned ANS4           : 1;
+               unsigned ANS5           : 1;
+               unsigned ANS6           : 1;
+               unsigned ANS7           : 1;
+       };
+} __ANSELbits_t;
+extern volatile __ANSELbits_t __at (0xF7E) ANSELbits;
+
+extern __sfr __at (0xF7F) ANSELH;
+typedef union {
+       struct {
+               unsigned ANS8           : 1;
+               unsigned ANS9           : 1;
+               unsigned ANS10          : 1;
+               unsigned ANS11          : 1;
+               unsigned ANS12          : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+       };
+} __ANSELHbits_t;
+extern volatile __ANSELHbits_t __at (0xF7F) ANSELHbits;
+
+extern __sfr __at (0xF80) PORTA;
+typedef union {
+       struct {
+               unsigned RA0            : 1;
+               unsigned RA1            : 1;
+               unsigned RA2            : 1;
+               unsigned RA3            : 1;
+               unsigned RA4            : 1;
+               unsigned RA5            : 1;
+               unsigned RA6            : 1;
+               unsigned RA7            : 1;
+       };
+       struct {
+               unsigned AN0            : 1;
+               unsigned AN1            : 1;
+               unsigned AN2            : 1;
+               unsigned AN3            : 1;
+               unsigned C1OUT          : 1;
+               unsigned AN4            : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+       };
+       struct {
+               unsigned C12IN0M        : 1;
+               unsigned C12IN1M        : 1;
+               unsigned C2INP          : 1;
+               unsigned C1INP          : 1;
+               unsigned T0CKI          : 1;
+               unsigned C2OUT          : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+       };
+       struct {
+               unsigned C12IN0N        : 1;
+               unsigned C12IN1N        : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned SS             : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+       };
+       struct {
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned NOT_SS         : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+       };
+       struct {
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned LVDIN          : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+       };
+       struct {
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned HLVDIN         : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+       };
+} __PORTAbits_t;
+extern volatile __PORTAbits_t __at (0xF80) PORTAbits;
+
+extern __sfr __at (0xF81) PORTB;
+typedef union {
+       struct {
+               unsigned RB0            : 1;
+               unsigned RB1            : 1;
+               unsigned RB2            : 1;
+               unsigned RB3            : 1;
+               unsigned RB4            : 1;
+               unsigned RB5            : 1;
+               unsigned RB6            : 1;
+               unsigned RB7            : 1;
+       };
+       struct {
+               unsigned INT0           : 1;
+               unsigned INT1           : 1;
+               unsigned INT2           : 1;
+               unsigned CCP2_PORTB     : 1;
+               unsigned KBI0           : 1;
+               unsigned KBI1           : 1;
+               unsigned KBI2           : 1;
+               unsigned KBI3           : 1;
+       };
+       struct {
+               unsigned AN12           : 1;
+               unsigned AN10           : 1;
+               unsigned AN8            : 1;
+               unsigned AN9            : 1;
+               unsigned AN11           : 1;
+               unsigned PGM            : 1;
+               unsigned PGC            : 1;
+               unsigned PGD            : 1;
+       };
+       struct {
+               unsigned                : 1;
+               unsigned C12IN2M        : 1;
+               unsigned                : 1;
+               unsigned C12IN3M        : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+       };
+       struct {
+               unsigned                : 1;
+               unsigned C12IN2N        : 1;
+               unsigned                : 1;
+               unsigned C12IN3N        : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+       };
+} __PORTBbits_t;
+extern volatile __PORTBbits_t __at (0xF81) PORTBbits;
+
+extern __sfr __at (0xF82) PORTC;
+typedef union {
+       struct {
+               unsigned RC0            : 1;
+               unsigned RC1            : 1;
+               unsigned RC2            : 1;
+               unsigned RC3            : 1;
+               unsigned RC4            : 1;
+               unsigned RC5            : 1;
+               unsigned RC6            : 1;
+               unsigned RC7            : 1;
+       };
+       struct {
+               unsigned T1OSO          : 1;
+               unsigned T1OSI          : 1;
+               unsigned CCP1           : 1;
+               unsigned SCK            : 1;
+               unsigned SDI            : 1;
+               unsigned SDO            : 1;
+               unsigned TX             : 1;
+               unsigned RX             : 1;
+       };
+       struct {
+               unsigned T13CKI         : 1;
+               unsigned CCP2_PORTC     : 1;
+               unsigned                : 1;
+               unsigned SCL            : 1;
+               unsigned SDA            : 1;
+               unsigned                : 1;
+               unsigned CK             : 1;
+               unsigned DT             : 1;
+       };
+       struct {
+               unsigned T1CKI          : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+       };
+} __PORTCbits_t;
+extern volatile __PORTCbits_t __at (0xF82) PORTCbits;
+
+extern __sfr __at (0xF83) PORTD;
+typedef union {
+       struct {
+               unsigned RD0            : 1;
+               unsigned RD1            : 1;
+               unsigned RD2            : 1;
+               unsigned RD3            : 1;
+               unsigned RD4            : 1;
+               unsigned RD5            : 1;
+               unsigned RD6            : 1;
+               unsigned RD7            : 1;
+       };
+       struct {
+               unsigned PSP0           : 1;
+               unsigned PSP1           : 1;
+               unsigned PSP2           : 1;
+               unsigned PSP3           : 1;
+               unsigned PSP4           : 1;
+               unsigned PSP5           : 1;
+               unsigned PSP6           : 1;
+               unsigned PSP7           : 1;
+       };
+       struct {
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned P1B            : 1;
+               unsigned P1C            : 1;
+               unsigned P1D            : 1;
+       };
+} __PORTDbits_t;
+extern volatile __PORTDbits_t __at (0xF83) PORTDbits;
+
+extern __sfr __at (0xF84) PORTE;
+typedef union {
+       struct {
+               unsigned RE0            : 1;
+               unsigned RE1            : 1;
+               unsigned RE2            : 1;
+               unsigned RE3            : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+       };
+       struct {
+               unsigned RD             : 1;
+               unsigned WR             : 1;
+               unsigned CS             : 1;
+               unsigned MCLR           : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+       };
+       struct {
+               unsigned NOT_RD         : 1;
+               unsigned NOT_WR         : 1;
+               unsigned NOT_CS         : 1;
+               unsigned NOT_MCLR       : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+       };
+       struct {
+               unsigned AN5            : 1;
+               unsigned AN6            : 1;
+               unsigned AN7            : 1;
+               unsigned VPP            : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+       };
+} __PORTEbits_t;
+extern volatile __PORTEbits_t __at (0xF84) PORTEbits;
+
+extern __sfr __at (0xF89) LATA;
+typedef union {
+       struct {
+               unsigned LATA0          : 1;
+               unsigned LATA1          : 1;
+               unsigned LATA2          : 1;
+               unsigned LATA3          : 1;
+               unsigned LATA4          : 1;
+               unsigned LATA5          : 1;
+               unsigned LATA6          : 1;
+               unsigned LATA7          : 1;
+       };
+} __LATAbits_t;
+extern volatile __LATAbits_t __at (0xF89) LATAbits;
+
+extern __sfr __at (0xF8A) LATB;
+typedef union {
+       struct {
+               unsigned LATB0          : 1;
+               unsigned LATB1          : 1;
+               unsigned LATB2          : 1;
+               unsigned LATB3          : 1;
+               unsigned LATB4          : 1;
+               unsigned LATB5          : 1;
+               unsigned LATB6          : 1;
+               unsigned LATB7          : 1;
+       };
+} __LATBbits_t;
+extern volatile __LATBbits_t __at (0xF8A) LATBbits;
+
+extern __sfr __at (0xF8B) LATC;
+typedef union {
+       struct {
+               unsigned LATC0          : 1;
+               unsigned LATC1          : 1;
+               unsigned LATC2          : 1;
+               unsigned LATC3          : 1;
+               unsigned LATC4          : 1;
+               unsigned LATC5          : 1;
+               unsigned LATC6          : 1;
+               unsigned LATC7          : 1;
+       };
+} __LATCbits_t;
+extern volatile __LATCbits_t __at (0xF8B) LATCbits;
+
+extern __sfr __at (0xF8C) LATD;
+typedef union {
+       struct {
+               unsigned LATD0          : 1;
+               unsigned LATD1          : 1;
+               unsigned LATD2          : 1;
+               unsigned LATD3          : 1;
+               unsigned LATD4          : 1;
+               unsigned LATD5          : 1;
+               unsigned LATD6          : 1;
+               unsigned LATD7          : 1;
+       };
+} __LATDbits_t;
+extern volatile __LATDbits_t __at (0xF8C) LATDbits;
+
+extern __sfr __at (0xF8D) LATE;
+typedef union {
+       struct {
+               unsigned LATE0          : 1;
+               unsigned LATE1          : 1;
+               unsigned LATE2          : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+       };
+} __LATEbits_t;
+extern volatile __LATEbits_t __at (0xF8D) LATEbits;
+
+extern __sfr __at (0xF92) DDRA;
+typedef union {
+       struct {
+               unsigned RA0            : 1;
+               unsigned RA1            : 1;
+               unsigned RA2            : 1;
+               unsigned RA3            : 1;
+               unsigned RA4            : 1;
+               unsigned RA5            : 1;
+               unsigned RA6            : 1;
+               unsigned RA7            : 1;
+       };
+} __DDRAbits_t;
+extern volatile __DDRAbits_t __at (0xF92) DDRAbits;
+
+extern __sfr __at (0xF92) TRISA;
+typedef union {
+       struct {
+               unsigned TRISA0         : 1;
+               unsigned TRISA1         : 1;
+               unsigned TRISA2         : 1;
+               unsigned TRISA3         : 1;
+               unsigned TRISA4         : 1;
+               unsigned TRISA5         : 1;
+               unsigned TRISA6         : 1;
+               unsigned TRISA7         : 1;
+       };
+} __TRISAbits_t;
+extern volatile __TRISAbits_t __at (0xF92) TRISAbits;
+
+extern __sfr __at (0xF93) DDRB;
+typedef union {
+       struct {
+               unsigned RB0            : 1;
+               unsigned RB1            : 1;
+               unsigned RB2            : 1;
+               unsigned RB3            : 1;
+               unsigned RB4            : 1;
+               unsigned RB5            : 1;
+               unsigned RB6            : 1;
+               unsigned RB7            : 1;
+       };
+} __DDRBbits_t;
+extern volatile __DDRBbits_t __at (0xF93) DDRBbits;
+
+extern __sfr __at (0xF93) TRISB;
+typedef union {
+       struct {
+               unsigned TRISB0         : 1;
+               unsigned TRISB1         : 1;
+               unsigned TRISB2         : 1;
+               unsigned TRISB3         : 1;
+               unsigned TRISB4         : 1;
+               unsigned TRISB5         : 1;
+               unsigned TRISB6         : 1;
+               unsigned TRISB7         : 1;
+       };
+} __TRISBbits_t;
+extern volatile __TRISBbits_t __at (0xF93) TRISBbits;
+
+extern __sfr __at (0xF94) DDRC;
+typedef union {
+       struct {
+               unsigned RC0            : 1;
+               unsigned RC1            : 1;
+               unsigned RC2            : 1;
+               unsigned RC3            : 1;
+               unsigned RC4            : 1;
+               unsigned RC5            : 1;
+               unsigned RC6            : 1;
+               unsigned RC7            : 1;
+       };
+} __DDRCbits_t;
+extern volatile __DDRCbits_t __at (0xF94) DDRCbits;
+
+extern __sfr __at (0xF94) TRISC;
+typedef union {
+       struct {
+               unsigned TRISC0         : 1;
+               unsigned TRISC1         : 1;
+               unsigned TRISC2         : 1;
+               unsigned TRISC3         : 1;
+               unsigned TRISC4         : 1;
+               unsigned TRISC5         : 1;
+               unsigned TRISC6         : 1;
+               unsigned TRISC7         : 1;
+       };
+} __TRISCbits_t;
+extern volatile __TRISCbits_t __at (0xF94) TRISCbits;
+
+extern __sfr __at (0xF95) DDRD;
+typedef union {
+       struct {
+               unsigned RD0            : 1;
+               unsigned RD1            : 1;
+               unsigned RD2            : 1;
+               unsigned RD3            : 1;
+               unsigned RD4            : 1;
+               unsigned RD5            : 1;
+               unsigned RD6            : 1;
+               unsigned RD7            : 1;
+       };
+} __DDRDbits_t;
+extern volatile __DDRDbits_t __at (0xF95) DDRDbits;
+
+extern __sfr __at (0xF95) TRISD;
+typedef union {
+       struct {
+               unsigned TRISD0         : 1;
+               unsigned TRISD1         : 1;
+               unsigned TRISD2         : 1;
+               unsigned TRISD3         : 1;
+               unsigned TRISD4         : 1;
+               unsigned TRISD5         : 1;
+               unsigned TRISD6         : 1;
+               unsigned TRISD7         : 1;
+       };
+} __TRISDbits_t;
+extern volatile __TRISDbits_t __at (0xF95) TRISDbits;
+
+extern __sfr __at (0xF96) DDRE;
+typedef union {
+       struct {
+               unsigned RE0            : 1;
+               unsigned RE1            : 1;
+               unsigned RE2            : 1;
+               unsigned RE3            : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+       };
+} __DDREbits_t;
+extern volatile __DDREbits_t __at (0xF96) DDREbits;
+
+extern __sfr __at (0xF96) TRISE;
+typedef union {
+       struct {
+               unsigned TRISE0         : 1;
+               unsigned TRISE1         : 1;
+               unsigned TRISE2         : 1;
+               unsigned                : 1;
+               unsigned PSPMODE        : 1;
+               unsigned IBOV           : 1;
+               unsigned OBF            : 1;
+               unsigned IBF            : 1;
+       };
+} __TRISEbits_t;
+extern volatile __TRISEbits_t __at (0xF96) TRISEbits;
+
+extern __sfr __at (0xF9B) OSCTUNE;
+typedef union {
+       struct {
+               unsigned TUN0           : 1;
+               unsigned TUN1           : 1;
+               unsigned TUN2           : 1;
+               unsigned TUN3           : 1;
+               unsigned TUN4           : 1;
+               unsigned TUN5           : 1;
+               unsigned PLLEN          : 1;
+               unsigned INTSRC         : 1;
+       };
+} __OSCTUNEbits_t;
+extern volatile __OSCTUNEbits_t __at (0xF9B) OSCTUNEbits;
+
+extern __sfr __at (0xF9D) PIE1;
+typedef union {
+       struct {
+               unsigned TMR1IE         : 1;
+               unsigned TMR2IE         : 1;
+               unsigned CCP1IE         : 1;
+               unsigned SSPIE          : 1;
+               unsigned TXIE           : 1;
+               unsigned RCIE           : 1;
+               unsigned ADIE           : 1;
+               unsigned PSPIE          : 1;
+       };
+} __PIE1bits_t;
+extern volatile __PIE1bits_t __at (0xF9D) PIE1bits;
+
+extern __sfr __at (0xF9E) PIR1;
+typedef union {
+       struct {
+               unsigned TMR1IF         : 1;
+               unsigned TMR2IF         : 1;
+               unsigned CCP1IF         : 1;
+               unsigned SSPIF          : 1;
+               unsigned TXIF           : 1;
+               unsigned RCIF           : 1;
+               unsigned ADIF           : 1;
+               unsigned PSPIF          : 1;
+       };
+} __PIR1bits_t;
+extern volatile __PIR1bits_t __at (0xF9E) PIR1bits;
+
+extern __sfr __at (0xF9F) IPR1;
+typedef union {
+       struct {
+               unsigned TMR1IP         : 1;
+               unsigned TMR2IP         : 1;
+               unsigned CCP1IP         : 1;
+               unsigned SSPIP          : 1;
+               unsigned TXIP           : 1;
+               unsigned RCIP           : 1;
+               unsigned ADIP           : 1;
+               unsigned PSPIP          : 1;
+       };
+} __IPR1bits_t;
+extern volatile __IPR1bits_t __at (0xF9F) IPR1bits;
+
+extern __sfr __at (0xFA0) PIE2;
+typedef union {
+       struct {
+               unsigned CCP2IE         : 1;
+               unsigned TMR3IE         : 1;
+               unsigned LVDIE          : 1;
+               unsigned BCLIE          : 1;
+               unsigned EEIE           : 1;
+               unsigned CM2IE          : 1;
+               unsigned CM1IE          : 1;
+               unsigned OSCFIE         : 1;
+       };
+       struct {
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned HLVDIE         : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned C2IE           : 1;
+               unsigned C1IE           : 1;
+               unsigned                : 1;
+       };
+} __PIE2bits_t;
+extern volatile __PIE2bits_t __at (0xFA0) PIE2bits;
+
+extern __sfr __at (0xFA1) PIR2;
+typedef union {
+       struct {
+               unsigned CCP2IF         : 1;
+               unsigned TMR3IF         : 1;
+               unsigned LVDIF          : 1;
+               unsigned BCLIF          : 1;
+               unsigned EEIF           : 1;
+               unsigned CM2IF          : 1;
+               unsigned CM1IF          : 1;
+               unsigned OSCFIF         : 1;
+       };
+       struct {
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned HLVDIF         : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned C2IF           : 1;
+               unsigned C1IF           : 1;
+               unsigned                : 1;
+       };
+} __PIR2bits_t;
+extern volatile __PIR2bits_t __at (0xFA1) PIR2bits;
+
+extern __sfr __at (0xFA2) IPR2;
+typedef union {
+       struct {
+               unsigned CCP2IP         : 1;
+               unsigned TMR3IP         : 1;
+               unsigned LVDIP          : 1;
+               unsigned BCLIP          : 1;
+               unsigned EEIP           : 1;
+               unsigned CM2IP          : 1;
+               unsigned CM1IP          : 1;
+               unsigned OSCFIP         : 1;
+       };
+       struct {
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned HLVDIP         : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned C2IP           : 1;
+               unsigned C1IP           : 1;
+               unsigned                : 1;
+       };
+} __IPR2bits_t;
+extern volatile __IPR2bits_t __at (0xFA2) IPR2bits;
+
+extern __sfr __at (0xFA6) EECON1;
+typedef union {
+       struct {
+               unsigned RD             : 1;
+               unsigned WR             : 1;
+               unsigned WREN           : 1;
+               unsigned WRERR          : 1;
+               unsigned FREE           : 1;
+               unsigned                : 1;
+               unsigned CFGS           : 1;
+               unsigned EEPGD          : 1;
+       };
+} __EECON1bits_t;
+extern volatile __EECON1bits_t __at (0xFA6) EECON1bits;
+
+extern __sfr __at (0xFA7) EECON2;
+
+extern __sfr __at (0xFA8) EEDATA;
+
+extern __sfr __at (0xFA9) EEADR;
+
+extern __sfr __at (0xFAB) RCSTA;
+typedef union {
+       struct {
+               unsigned RX9D           : 1;
+               unsigned OERR           : 1;
+               unsigned FERR           : 1;
+               unsigned ADEN           : 1;
+               unsigned CREN           : 1;
+               unsigned SREN           : 1;
+               unsigned RX9            : 1;
+               unsigned SPEN           : 1;
+       };
+       struct {
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned ADDEN          : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+       };
+} __RCSTAbits_t;
+extern volatile __RCSTAbits_t __at (0xFAB) RCSTAbits;
+
+extern __sfr __at (0xFAC) TXSTA;
+typedef union {
+       struct {
+               unsigned TX9D           : 1;
+               unsigned TRMT           : 1;
+               unsigned BRGH           : 1;
+               unsigned SENDB          : 1;
+               unsigned SYNC           : 1;
+               unsigned TXEN           : 1;
+               unsigned TX9            : 1;
+               unsigned CSRC           : 1;
+       };
+} __TXSTAbits_t;
+extern volatile __TXSTAbits_t __at (0xFAC) TXSTAbits;
+
+extern __sfr __at (0xFAD) TXREG;
+
+extern __sfr __at (0xFAE) RCREG;
+
+extern __sfr __at (0xFAF) SPBRG;
+
+extern __sfr __at (0xFB0) SPBRGH;
+
+extern __sfr __at (0xFB1) T3CON;
+typedef union {
+       struct {
+               unsigned TMR3ON         : 1;
+               unsigned TMR3CS         : 1;
+               unsigned T3SYNC         : 1;
+               unsigned T3CCP1         : 1;
+               unsigned T3CKPS0        : 1;
+               unsigned T3CKPS1        : 1;
+               unsigned T3CCP2         : 1;
+               unsigned RD16           : 1;
+       };
+       struct {
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned NOT_T3SYNC     : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+       };
+} __T3CONbits_t;
+extern volatile __T3CONbits_t __at (0xFB1) T3CONbits;
+
+extern __sfr __at (0xFB2) TMR3L;
+
+extern __sfr __at (0xFB3) TMR3H;
+
+extern __sfr __at (0xFB4) CVRCON2;
+typedef union {
+       struct {
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned FVRST          : 1;
+               unsigned FVREN          : 1;
+       };
+} __CVRCON2bits_t;
+extern volatile __CVRCON2bits_t __at (0xFB4) CVRCON2bits;
+
+extern __sfr __at (0xFB5) CVRCON;
+typedef union {
+       struct {
+               unsigned CVR0           : 1;
+               unsigned CVR1           : 1;
+               unsigned CVR2           : 1;
+               unsigned CVR3           : 1;
+               unsigned CVRSS          : 1;
+               unsigned CVRR           : 1;
+               unsigned CVROE          : 1;
+               unsigned CVREN          : 1;
+       };
+} __CVRCONbits_t;
+extern volatile __CVRCONbits_t __at (0xFB5) CVRCONbits;
+
+extern __sfr __at (0xFB6) ECCP1AS;
+typedef union {
+       struct {
+               unsigned PSSBD0         : 1;
+               unsigned PSSBD1         : 1;
+               unsigned PSSAC0         : 1;
+               unsigned PSSAC1         : 1;
+               unsigned ECCPAS0        : 1;
+               unsigned ECCPAS1        : 1;
+               unsigned ECCPAS2        : 1;
+               unsigned ECCPASE        : 1;
+       };
+} __ECCP1ASbits_t;
+extern volatile __ECCP1ASbits_t __at (0xFB6) ECCP1ASbits;
+
+extern __sfr __at (0xFB7) PWM1CON;
+typedef union {
+       struct {
+               unsigned PDC0           : 1;
+               unsigned PDC1           : 1;
+               unsigned PDC2           : 1;
+               unsigned PDC3           : 1;
+               unsigned PDC4           : 1;
+               unsigned PDC5           : 1;
+               unsigned PDC6           : 1;
+               unsigned PRSEN          : 1;
+       };
+} __PWM1CONbits_t;
+extern volatile __PWM1CONbits_t __at (0xFB7) PWM1CONbits;
+
+extern __sfr __at (0xFB8) BAUDCON;
+typedef union {
+       struct {
+               unsigned ABDEN          : 1;
+               unsigned WUE            : 1;
+               unsigned                : 1;
+               unsigned BRG16          : 1;
+               unsigned SCKP           : 1;
+               unsigned                : 1;
+               unsigned RCIDL          : 1;
+               unsigned ABDOVF         : 1;
+       };
+       struct {
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned CKTXP          : 1;
+               unsigned DTRXP          : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+       };
+} __BAUDCONbits_t;
+extern volatile __BAUDCONbits_t __at (0xFB8) BAUDCONbits;
+
+extern __sfr __at (0xFB8) BAUDCTL;
+typedef union {
+       struct {
+               unsigned ABDEN          : 1;
+               unsigned WUE            : 1;
+               unsigned                : 1;
+               unsigned BRG16          : 1;
+               unsigned SCKP           : 1;
+               unsigned                : 1;
+               unsigned RCIDL          : 1;
+               unsigned ABDOVF         : 1;
+       };
+       struct {
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned CKTXP          : 1;
+               unsigned DTRXP          : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+       };
+} __BAUDCTLbits_t;
+extern volatile __BAUDCTLbits_t __at (0xFB8) BAUDCTLbits;
+
+extern __sfr __at (0xFB9) PSTRCON;
+typedef union {
+       struct {
+               unsigned STRA           : 1;
+               unsigned STRB           : 1;
+               unsigned STRC           : 1;
+               unsigned STRD           : 1;
+               unsigned STRSYNC        : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+       };
+} __PSTRCONbits_t;
+extern volatile __PSTRCONbits_t __at (0xFB9) PSTRCONbits;
+
+extern __sfr __at (0xFBA) 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;
+       };
+} __CCP2CONbits_t;
+extern volatile __CCP2CONbits_t __at (0xFBA) CCP2CONbits;
+
+extern __sfr __at (0xFBB) CCPR2;
+
+extern __sfr __at (0xFBB) CCPR2L;
+
+extern __sfr __at (0xFBC) CCPR2H;
+
+extern __sfr __at (0xFBD) CCP1CON;
+typedef union {
+       struct {
+               unsigned CCP1M0         : 1;
+               unsigned CCP1M1         : 1;
+               unsigned CCP1M2         : 1;
+               unsigned CCP1M3         : 1;
+               unsigned DC1B0          : 1;
+               unsigned DC1B1          : 1;
+               unsigned P1M0           : 1;
+               unsigned P1M1           : 1;
+       };
+} __CCP1CONbits_t;
+extern volatile __CCP1CONbits_t __at (0xFBD) CCP1CONbits;
+
+extern __sfr __at (0xFBE) CCPR1;
+
+extern __sfr __at (0xFBE) CCPR1L;
+
+extern __sfr __at (0xFBF) CCPR1H;
+
+extern __sfr __at (0xFC0) ADCON2;
+typedef union {
+       struct {
+               unsigned ADCS0          : 1;
+               unsigned ADCS1          : 1;
+               unsigned ADCS2          : 1;
+               unsigned ACQT0          : 1;
+               unsigned ACQT1          : 1;
+               unsigned ACQT2          : 1;
+               unsigned                : 1;
+               unsigned ADFM           : 1;
+       };
+} __ADCON2bits_t;
+extern volatile __ADCON2bits_t __at (0xFC0) ADCON2bits;
+
+extern __sfr __at (0xFC1) ADCON1;
+typedef union {
+       struct {
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned VCFG0          : 1;
+               unsigned VCFG1          : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+       };
+} __ADCON1bits_t;
+extern volatile __ADCON1bits_t __at (0xFC1) ADCON1bits;
+
+extern __sfr __at (0xFC2) ADCON0;
+typedef union {
+       struct {
+               unsigned ADON           : 1;
+               unsigned GO             : 1;
+               unsigned CHS0           : 1;
+               unsigned CHS1           : 1;
+               unsigned CHS2           : 1;
+               unsigned CHS3           : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+       };
+       struct {
+               unsigned                : 1;
+               unsigned DONE           : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+       };
+       struct {
+               unsigned                : 1;
+               unsigned NOT_DONE       : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+       };
+       struct {
+               unsigned                : 1;
+               unsigned GO_DONE        : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+       };
+} __ADCON0bits_t;
+extern volatile __ADCON0bits_t __at (0xFC2) ADCON0bits;
+
+extern __sfr __at (0xFC3) ADRES;
+
+extern __sfr __at (0xFC3) ADRESL;
+
+extern __sfr __at (0xFC4) ADRESH;
+
+extern __sfr __at (0xFC5) SSPCON2;
+typedef union {
+       struct {
+               unsigned SEN            : 1;
+               unsigned RSEN           : 1;
+               unsigned PEN            : 1;
+               unsigned RCEN           : 1;
+               unsigned ACKEN          : 1;
+               unsigned ACKDT          : 1;
+               unsigned ACKSTAT        : 1;
+               unsigned GCEN           : 1;
+       };
+} __SSPCON2bits_t;
+extern volatile __SSPCON2bits_t __at (0xFC5) SSPCON2bits;
+
+extern __sfr __at (0xFC6) SSPCON1;
+typedef union {
+       struct {
+               unsigned SSPM0          : 1;
+               unsigned SSPM1          : 1;
+               unsigned SSPM2          : 1;
+               unsigned SSPM3          : 1;
+               unsigned CKP            : 1;
+               unsigned SSPEN          : 1;
+               unsigned SSPOV          : 1;
+               unsigned WCOL           : 1;
+       };
+} __SSPCON1bits_t;
+extern volatile __SSPCON1bits_t __at (0xFC6) SSPCON1bits;
+
+extern __sfr __at (0xFC7) SSPSTAT;
+typedef union {
+       struct {
+               unsigned BF             : 1;
+               unsigned UA             : 1;
+               unsigned R              : 1;
+               unsigned S              : 1;
+               unsigned P              : 1;
+               unsigned D              : 1;
+               unsigned CKE            : 1;
+               unsigned SMP            : 1;
+       };
+       struct {
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned NOT_W          : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned NOT_A          : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+       };
+       struct {
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned R_W            : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned D_A            : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+       };
+       struct {
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned NOT_WRITE      : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned NOT_ADDRESS    : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+       };
+} __SSPSTATbits_t;
+extern volatile __SSPSTATbits_t __at (0xFC7) SSPSTATbits;
+
+extern __sfr __at (0xFC8) SSPADD;
+
+extern __sfr __at (0xFC9) SSPBUF;
+
+extern __sfr __at (0xFCA) T2CON;
+typedef union {
+       struct {
+               unsigned T2CKPS0        : 1;
+               unsigned T2CKPS1        : 1;
+               unsigned TMR2ON         : 1;
+               unsigned T2OUTPS0       : 1;
+               unsigned T2OUTPS1       : 1;
+               unsigned T2OUTPS2       : 1;
+               unsigned T2OUTPS3       : 1;
+               unsigned                : 1;
+       };
+} __T2CONbits_t;
+extern volatile __T2CONbits_t __at (0xFCA) T2CONbits;
+
+extern __sfr __at (0xFCB) PR2;
+
+extern __sfr __at (0xFCC) TMR2;
+
+extern __sfr __at (0xFCD) T1CON;
+typedef union {
+       struct {
+               unsigned TMR1ON         : 1;
+               unsigned TMR1CS         : 1;
+               unsigned T1SYNC         : 1;
+               unsigned T1OSCEN        : 1;
+               unsigned T1CKPS0        : 1;
+               unsigned T1CKPS1        : 1;
+               unsigned T1RUN          : 1;
+               unsigned RD16           : 1;
+       };
+       struct {
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned NOT_T1SYNC     : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+       };
+} __T1CONbits_t;
+extern volatile __T1CONbits_t __at (0xFCD) T1CONbits;
+
+extern __sfr __at (0xFCE) TMR1L;
+
+extern __sfr __at (0xFCF) TMR1H;
+
+extern __sfr __at (0xFD0) RCON;
+typedef union {
+       struct {
+               unsigned BOR            : 1;
+               unsigned POR            : 1;
+               unsigned PD             : 1;
+               unsigned TO             : 1;
+               unsigned RI             : 1;
+               unsigned                : 1;
+               unsigned SBOREN         : 1;
+               unsigned IPEN           : 1;
+       };
+       struct {
+               unsigned NOT_BOR        : 1;
+               unsigned NOT_POR        : 1;
+               unsigned NOT_PD         : 1;
+               unsigned NOT_TO         : 1;
+               unsigned NOT_RI         : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+       };
+} __RCONbits_t;
+extern volatile __RCONbits_t __at (0xFD0) RCONbits;
+
+extern __sfr __at (0xFD1) WDTCON;
+typedef union {
+       struct {
+               unsigned SWDTEN         : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+       };
+       struct {
+               unsigned SWDTE          : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+       };
+} __WDTCONbits_t;
+extern volatile __WDTCONbits_t __at (0xFD1) WDTCONbits;
+
+extern __sfr __at (0xFD2) HLVDCON;
+typedef union {
+       struct {
+               unsigned LVDL0          : 1;
+               unsigned LVDL1          : 1;
+               unsigned LVDL2          : 1;
+               unsigned LVDL3          : 1;
+               unsigned LVDEN          : 1;
+               unsigned IRVST          : 1;
+               unsigned                : 1;
+               unsigned VDIRMAG        : 1;
+       };
+       struct {
+               unsigned LVV0           : 1;
+               unsigned LVV1           : 1;
+               unsigned LVV2           : 1;
+               unsigned LVV3           : 1;
+               unsigned HLVDEN         : 1;
+               unsigned BGST           : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+       };
+       struct {
+               unsigned HLVDL0         : 1;
+               unsigned HLVDL1         : 1;
+               unsigned HLVDL2         : 1;
+               unsigned HLVDL3         : 1;
+               unsigned                : 1;
+               unsigned IVRST          : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+       };
+} __HLVDCONbits_t;
+extern volatile __HLVDCONbits_t __at (0xFD2) HLVDCONbits;
+
+extern __sfr __at (0xFD2) LVDCON;
+typedef union {
+       struct {
+               unsigned LVDL0          : 1;
+               unsigned LVDL1          : 1;
+               unsigned LVDL2          : 1;
+               unsigned LVDL3          : 1;
+               unsigned LVDEN          : 1;
+               unsigned IRVST          : 1;
+               unsigned                : 1;
+               unsigned VDIRMAG        : 1;
+       };
+       struct {
+               unsigned LVV0           : 1;
+               unsigned LVV1           : 1;
+               unsigned LVV2           : 1;
+               unsigned LVV3           : 1;
+               unsigned HLVDEN         : 1;
+               unsigned BGST           : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+       };
+       struct {
+               unsigned HLVDL0         : 1;
+               unsigned HLVDL1         : 1;
+               unsigned HLVDL2         : 1;
+               unsigned HLVDL3         : 1;
+               unsigned                : 1;
+               unsigned IVRST          : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+       };
+} __LVDCONbits_t;
+extern volatile __LVDCONbits_t __at (0xFD2) LVDCONbits;
+
+extern __sfr __at (0xFD3) OSCCON;
+typedef union {
+       struct {
+               unsigned SCS0           : 1;
+               unsigned SCS1           : 1;
+               unsigned IOFS           : 1;
+               unsigned OSTS           : 1;
+               unsigned IRCF0          : 1;
+               unsigned IRCF1          : 1;
+               unsigned IRCF2          : 1;
+               unsigned IDLEN          : 1;
+       };
+} __OSCCONbits_t;
+extern volatile __OSCCONbits_t __at (0xFD3) OSCCONbits;
+
+extern __sfr __at (0xFD4) DEBUG;
+
+extern __sfr __at (0xFD5) T0CON;
+typedef union {
+       struct {
+               unsigned T0PS0          : 1;
+               unsigned T0PS1          : 1;
+               unsigned T0PS2          : 1;
+               unsigned PSA            : 1;
+               unsigned T0SE           : 1;
+               unsigned T0CS           : 1;
+               unsigned T08BIT         : 1;
+               unsigned TMR0ON         : 1;
+       };
+} __T0CONbits_t;
+extern volatile __T0CONbits_t __at (0xFD5) T0CONbits;
+
+extern __sfr __at (0xFD6) TMR0L;
+
+extern __sfr __at (0xFD7) TMR0H;
+
+extern __sfr __at (0xFD8) STATUS;
+typedef union {
+       struct {
+               unsigned C              : 1;
+               unsigned DC             : 1;
+               unsigned Z              : 1;
+               unsigned OV             : 1;
+               unsigned N              : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+       };
+} __STATUSbits_t;
+extern volatile __STATUSbits_t __at (0xFD8) STATUSbits;
+
+extern __sfr __at (0xFD9) FSR2L;
+
+extern __sfr __at (0xFDA) FSR2H;
+
+extern __sfr __at (0xFDB) PLUSW2;
+
+extern __sfr __at (0xFDC) PREINC2;
+
+extern __sfr __at (0xFDD) POSTDEC2;
+
+extern __sfr __at (0xFDE) POSTINC2;
+
+extern __sfr __at (0xFDF) INDF2;
+
+extern __sfr __at (0xFE0) BSR;
+
+extern __sfr __at (0xFE1) FSR1L;
+
+extern __sfr __at (0xFE2) FSR1H;
+
+extern __sfr __at (0xFE3) PLUSW1;
+
+extern __sfr __at (0xFE4) PREINC1;
+
+extern __sfr __at (0xFE5) POSTDEC1;
+
+extern __sfr __at (0xFE6) POSTINC1;
+
+extern __sfr __at (0xFE7) INDF1;
+
+extern __sfr __at (0xFE8) WREG;
+
+extern __sfr __at (0xFE9) FSR0L;
+
+extern __sfr __at (0xFEA) FSR0H;
+
+extern __sfr __at (0xFEB) PLUSW0;
+
+extern __sfr __at (0xFEC) PREINC0;
+
+extern __sfr __at (0xFED) POSTDEC0;
+
+extern __sfr __at (0xFEE) POSTINC0;
+
+extern __sfr __at (0xFEF) INDF0;
+
+extern __sfr __at (0xFF0) INTCON3;
+typedef union {
+       struct {
+               unsigned INT1F          : 1;
+               unsigned INT2F          : 1;
+               unsigned                : 1;
+               unsigned INT1E          : 1;
+               unsigned INT2E          : 1;
+               unsigned                : 1;
+               unsigned INT1P          : 1;
+               unsigned INT2P          : 1;
+       };
+       struct {
+               unsigned INT1IF         : 1;
+               unsigned INT2IF         : 1;
+               unsigned                : 1;
+               unsigned INT1IE         : 1;
+               unsigned INT2IE         : 1;
+               unsigned                : 1;
+               unsigned INT1IP         : 1;
+               unsigned INT2IP         : 1;
+       };
+} __INTCON3bits_t;
+extern volatile __INTCON3bits_t __at (0xFF0) INTCON3bits;
+
+extern __sfr __at (0xFF1) INTCON2;
+typedef union {
+       struct {
+               unsigned RBIP           : 1;
+               unsigned                : 1;
+               unsigned TMR0IP         : 1;
+               unsigned                : 1;
+               unsigned INTEDG2        : 1;
+               unsigned INTEDG1        : 1;
+               unsigned INTEDG0        : 1;
+               unsigned RBPU           : 1;
+       };
+       struct {
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned NOT_RBPU       : 1;
+       };
+} __INTCON2bits_t;
+extern volatile __INTCON2bits_t __at (0xFF1) INTCON2bits;
+
+extern __sfr __at (0xFF2) INTCON;
+typedef union {
+       struct {
+               unsigned RBIF           : 1;
+               unsigned INT0F          : 1;
+               unsigned TMR0IF         : 1;
+               unsigned RBIE           : 1;
+               unsigned INT0E          : 1;
+               unsigned TMR0IE         : 1;
+               unsigned PEIE           : 1;
+               unsigned GIE            : 1;
+       };
+       struct {
+               unsigned                : 1;
+               unsigned INT0IF         : 1;
+               unsigned T0IF           : 1;
+               unsigned                : 1;
+               unsigned INT0IE         : 1;
+               unsigned T0IE           : 1;
+               unsigned GIEL           : 1;
+               unsigned GIEH           : 1;
+       };
+} __INTCONbits_t;
+extern volatile __INTCONbits_t __at (0xFF2) INTCONbits;
+
+extern __sfr __at (0xFF3) PROD;
+
+extern __sfr __at (0xFF3) PRODL;
+
+extern __sfr __at (0xFF4) PRODH;
+
+extern __sfr __at (0xFF5) TABLAT;
+
+extern __sfr __at (0xFF6) TBLPTR;
+
+extern __sfr __at (0xFF6) TBLPTRL;
+
+extern __sfr __at (0xFF7) TBLPTRH;
+
+extern __sfr __at (0xFF8) TBLPTRU;
+
+extern __sfr __at (0xFF9) PC;
+
+extern __sfr __at (0xFF9) PCL;
+
+extern __sfr __at (0xFFA) PCLATH;
+
+extern __sfr __at (0xFFB) PCLATU;
+
+extern __sfr __at (0xFFC) STKPTR;
+typedef union {
+       struct {
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned STKUNF         : 1;
+               unsigned STKOVF         : 1;
+       };
+} __STKPTRbits_t;
+extern volatile __STKPTRbits_t __at (0xFFC) STKPTRbits;
+
+extern __sfr __at (0xFFD) TOS;
+
+extern __sfr __at (0xFFD) TOSL;
+
+extern __sfr __at (0xFFE) TOSH;
+
+extern __sfr __at (0xFFF) TOSU;
+
+
+#endif
+
diff --git a/device/include/pic16/pic18f65j50.h b/device/include/pic16/pic18f65j50.h
new file mode 100644 (file)
index 0000000..8d37791
--- /dev/null
@@ -0,0 +1,26 @@
+/*
+ * pic18f65j50.h - device specific declarations
+ */
+
+#ifndef __PIC18F65J50_H__
+#define __PIC18F65J50_H__ 1
+
+#include "pic18f67j50.h"
+
+// Configuration Bits
+#undef __CONFIG1L
+#undef __CONFIG1H
+#undef __CONFIG2L
+#undef __CONFIG2H
+#undef __CONFIG3L
+#undef __CONFIG3H
+
+#define        __CONFIG1L              0x7FF8
+#define        __CONFIG1H              0x7FF9
+#define        __CONFIG2L              0x7FFA
+#define        __CONFIG2H              0x7FFB
+#define        __CONFIG3L              0x7FFC
+#define        __CONFIG3H              0x7FFD
+
+#endif
+
diff --git a/device/include/pic16/pic18f66j50.h b/device/include/pic16/pic18f66j50.h
new file mode 100644 (file)
index 0000000..43b71d2
--- /dev/null
@@ -0,0 +1,26 @@
+/*
+ * pic18f66j50.h - device specific declarations
+ */
+
+#ifndef __PIC18F66J50_H__
+#define __PIC18F66J50_H__ 1
+
+#include "pic18f67j50.h"
+
+#undef __CONFIG1L
+#undef __CONFIG1H
+#undef __CONFIG2L
+#undef __CONFIG2H
+#undef __CONFIG3L
+#undef __CONFIG3H
+
+// Configuration Bits
+#define        __CONFIG1L              0xFFF8
+#define        __CONFIG1H              0xFFF9
+#define        __CONFIG2L              0xFFFA
+#define        __CONFIG2H              0xFFFB
+#define        __CONFIG3L              0xFFFC
+#define        __CONFIG3H              0xFFFD
+
+#endif
+
diff --git a/device/include/pic16/pic18f66j55.h b/device/include/pic16/pic18f66j55.h
new file mode 100644 (file)
index 0000000..feab09a
--- /dev/null
@@ -0,0 +1,26 @@
+/*
+ * pic18f66j55.h - device specific declarations
+ */
+
+#ifndef __PIC18F66J55_H__
+#define __PIC18F66J55_H__ 1
+
+#include "pic18f67j50.h"
+
+#undef __CONFIG1L
+#undef __CONFIG1H
+#undef __CONFIG2L
+#undef __CONFIG2H
+#undef __CONFIG3L
+#undef __CONFIG3H
+
+// Configuration Bits
+#define        __CONFIG1L              0x17FF8
+#define        __CONFIG1H              0x17FF9
+#define        __CONFIG2L              0x17FFA
+#define        __CONFIG2H              0x17FFB
+#define        __CONFIG3L              0x17FFC
+#define        __CONFIG3H              0x17FFD
+
+#endif
+
diff --git a/device/include/pic16/pic18f67j50.h b/device/include/pic16/pic18f67j50.h
new file mode 100644 (file)
index 0000000..10f279f
--- /dev/null
@@ -0,0 +1,3210 @@
+/*
+ * pic18f67j50.h - device specific declarations
+ *
+ * This file is part of the GNU PIC library for SDCC,
+ * originally devised by Vangelis Rokas <vrokas AT otenet.gr>
+ *
+ * It has been automatically generated by inc2h-pic16.pl,
+ * (c) 2007 by Raphael Neider <rneider AT web.de>
+ */
+
+#ifndef __PIC18F67J50_H__
+#define __PIC18F67J50_H__ 1
+
+
+
+// Configuration Bits
+#define        __CONFIG1L              0x1FFF8
+#define        __CONFIG1H              0x1FFF9
+#define        __CONFIG2L              0x1FFFA
+#define        __CONFIG2H              0x1FFFB
+#define        __CONFIG3L              0x1FFFC
+#define        __CONFIG3H              0x1FFFD
+#define        _DEVID1                 0x3FFFFE
+#define        _DEVID2                 0x3FFFFF
+
+extern __sfr __at (0xF40) PMSTAT;
+
+extern __sfr __at (0xF40) PMSTATL;
+typedef union {
+       struct {
+               unsigned OB0E           : 1;
+               unsigned OB1E           : 1;
+               unsigned OB2E           : 1;
+               unsigned OB3E           : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned OBUF           : 1;
+               unsigned OBE            : 1;
+       };
+} __PMSTATLbits_t;
+extern volatile __PMSTATLbits_t __at (0xF40) PMSTATLbits;
+
+extern __sfr __at (0xF41) PMSTATH;
+typedef union {
+       struct {
+               unsigned IB0F           : 1;
+               unsigned IB1F           : 1;
+               unsigned IB2F           : 1;
+               unsigned IB3F           : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned IBOV           : 1;
+               unsigned IBF            : 1;
+       };
+} __PMSTATHbits_t;
+extern volatile __PMSTATHbits_t __at (0xF41) PMSTATHbits;
+
+extern __sfr __at (0xF42) PMEL;
+typedef union {
+       struct {
+               unsigned PTEN0          : 1;
+               unsigned PTEN1          : 1;
+               unsigned PTEN2          : 1;
+               unsigned PTEN3          : 1;
+               unsigned PTEN4          : 1;
+               unsigned PTEN5          : 1;
+               unsigned PTEN6          : 1;
+               unsigned PTEN7          : 1;
+       };
+} __PMELbits_t;
+extern volatile __PMELbits_t __at (0xF42) PMELbits;
+
+extern __sfr __at (0xF42) PMEN;
+
+extern __sfr __at (0xF43) PMEH;
+typedef union {
+       struct {
+               unsigned PTEN8          : 1;
+               unsigned PTEN9          : 1;
+               unsigned PTEN10         : 1;
+               unsigned PTEN11         : 1;
+               unsigned PTEN12         : 1;
+               unsigned PTEN13         : 1;
+               unsigned PTEN14         : 1;
+               unsigned PTEN15         : 1;
+       };
+} __PMEHbits_t;
+extern volatile __PMEHbits_t __at (0xF43) PMEHbits;
+
+extern __sfr __at (0xF44) PMDIN2;
+
+extern __sfr __at (0xF44) PMDIN2L;
+
+extern __sfr __at (0xF45) PMDIN2H;
+
+extern __sfr __at (0xF46) PMDOUT2;
+
+extern __sfr __at (0xF46) PMDOUT2L;
+
+extern __sfr __at (0xF47) PMDOUT2H;
+
+extern __sfr __at (0xF48) PMMODE;
+
+extern __sfr __at (0xF48) PMMODEL;
+typedef union {
+       struct {
+               unsigned WAITE0         : 1;
+               unsigned WAITE1         : 1;
+               unsigned WAITM0         : 1;
+               unsigned WAITM1         : 1;
+               unsigned WAITM2         : 1;
+               unsigned WAITM3         : 1;
+               unsigned WAITB0         : 1;
+               unsigned WAITB1         : 1;
+       };
+} __PMMODELbits_t;
+extern volatile __PMMODELbits_t __at (0xF48) PMMODELbits;
+
+extern __sfr __at (0xF49) PMMODEH;
+typedef union {
+       struct {
+               unsigned MODE0          : 1;
+               unsigned MODE1          : 1;
+               unsigned MODE16         : 1;
+               unsigned INCM0          : 1;
+               unsigned INCM1          : 1;
+               unsigned IRQM0          : 1;
+               unsigned IRQM1          : 1;
+               unsigned BUSY           : 1;
+       };
+} __PMMODEHbits_t;
+extern volatile __PMMODEHbits_t __at (0xF49) PMMODEHbits;
+
+extern __sfr __at (0xF4A) PMCON;
+
+extern __sfr __at (0xF4A) PMCONL;
+typedef union {
+       struct {
+               unsigned RDSP           : 1;
+               unsigned WRSP           : 1;
+               unsigned BEP            : 1;
+               unsigned CS1P           : 1;
+               unsigned CS2P           : 1;
+               unsigned ALP            : 1;
+               unsigned CSF0           : 1;
+               unsigned CSF1           : 1;
+       };
+} __PMCONLbits_t;
+extern volatile __PMCONLbits_t __at (0xF4A) PMCONLbits;
+
+extern __sfr __at (0xF4B) PMCONH;
+typedef union {
+       struct {
+               unsigned PTRDEN         : 1;
+               unsigned PTWREN         : 1;
+               unsigned PTBEEN         : 1;
+               unsigned ADRMUX0        : 1;
+               unsigned ADRMUX1        : 1;
+               unsigned PSIDL          : 1;
+               unsigned                : 1;
+               unsigned PMPEN          : 1;
+       };
+} __PMCONHbits_t;
+extern volatile __PMCONHbits_t __at (0xF4B) PMCONHbits;
+
+extern __sfr __at (0xF4C) UEP0;
+typedef union {
+       struct {
+               unsigned EPSTALL        : 1;
+               unsigned EPINEN         : 1;
+               unsigned EPOUTEN        : 1;
+               unsigned EPCONDIS       : 1;
+               unsigned EPHSHK         : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+       };
+} __UEP0bits_t;
+extern volatile __UEP0bits_t __at (0xF4C) UEP0bits;
+
+extern __sfr __at (0xF4D) UEP1;
+typedef union {
+       struct {
+               unsigned EPSTALL        : 1;
+               unsigned EPINEN         : 1;
+               unsigned EPOUTEN        : 1;
+               unsigned EPCONDIS       : 1;
+               unsigned EPHSHK         : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+       };
+} __UEP1bits_t;
+extern volatile __UEP1bits_t __at (0xF4D) UEP1bits;
+
+extern __sfr __at (0xF4E) UEP2;
+typedef union {
+       struct {
+               unsigned EPSTALL        : 1;
+               unsigned EPINEN         : 1;
+               unsigned EPOUTEN        : 1;
+               unsigned EPCONDIS       : 1;
+               unsigned EPHSHK         : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+       };
+} __UEP2bits_t;
+extern volatile __UEP2bits_t __at (0xF4E) UEP2bits;
+
+extern __sfr __at (0xF4F) UEP3;
+typedef union {
+       struct {
+               unsigned EPSTALL        : 1;
+               unsigned EPINEN         : 1;
+               unsigned EPOUTEN        : 1;
+               unsigned EPCONDIS       : 1;
+               unsigned EPHSHK         : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+       };
+} __UEP3bits_t;
+extern volatile __UEP3bits_t __at (0xF4F) UEP3bits;
+
+extern __sfr __at (0xF50) UEP4;
+typedef union {
+       struct {
+               unsigned EPSTALL        : 1;
+               unsigned EPINEN         : 1;
+               unsigned EPOUTEN        : 1;
+               unsigned EPCONDIS       : 1;
+               unsigned EPHSHK         : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+       };
+} __UEP4bits_t;
+extern volatile __UEP4bits_t __at (0xF50) UEP4bits;
+
+extern __sfr __at (0xF51) UEP5;
+typedef union {
+       struct {
+               unsigned EPSTALL        : 1;
+               unsigned EPINEN         : 1;
+               unsigned EPOUTEN        : 1;
+               unsigned EPCONDIS       : 1;
+               unsigned EPHSHK         : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+       };
+} __UEP5bits_t;
+extern volatile __UEP5bits_t __at (0xF51) UEP5bits;
+
+extern __sfr __at (0xF52) UEP6;
+typedef union {
+       struct {
+               unsigned EPSTALL        : 1;
+               unsigned EPINEN         : 1;
+               unsigned EPOUTEN        : 1;
+               unsigned EPCONDIS       : 1;
+               unsigned EPHSHK         : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+       };
+} __UEP6bits_t;
+extern volatile __UEP6bits_t __at (0xF52) UEP6bits;
+
+extern __sfr __at (0xF53) UEP7;
+typedef union {
+       struct {
+               unsigned EPSTALL        : 1;
+               unsigned EPINEN         : 1;
+               unsigned EPOUTEN        : 1;
+               unsigned EPCONDIS       : 1;
+               unsigned EPHSHK         : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+       };
+} __UEP7bits_t;
+extern volatile __UEP7bits_t __at (0xF53) UEP7bits;
+
+extern __sfr __at (0xF54) UEP8;
+typedef union {
+       struct {
+               unsigned EPSTALL        : 1;
+               unsigned EPINEN         : 1;
+               unsigned EPOUTEN        : 1;
+               unsigned EPCONDIS       : 1;
+               unsigned EPHSHK         : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+       };
+} __UEP8bits_t;
+extern volatile __UEP8bits_t __at (0xF54) UEP8bits;
+
+extern __sfr __at (0xF55) UEP9;
+typedef union {
+       struct {
+               unsigned EPSTALL        : 1;
+               unsigned EPINEN         : 1;
+               unsigned EPOUTEN        : 1;
+               unsigned EPCONDIS       : 1;
+               unsigned EPHSHK         : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+       };
+} __UEP9bits_t;
+extern volatile __UEP9bits_t __at (0xF55) UEP9bits;
+
+extern __sfr __at (0xF56) UEP10;
+typedef union {
+       struct {
+               unsigned EPSTALL        : 1;
+               unsigned EPINEN         : 1;
+               unsigned EPOUTEN        : 1;
+               unsigned EPCONDIS       : 1;
+               unsigned EPHSHK         : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+       };
+} __UEP10bits_t;
+extern volatile __UEP10bits_t __at (0xF56) UEP10bits;
+
+extern __sfr __at (0xF57) UEP11;
+typedef union {
+       struct {
+               unsigned EPSTALL        : 1;
+               unsigned EPINEN         : 1;
+               unsigned EPOUTEN        : 1;
+               unsigned EPCONDIS       : 1;
+               unsigned EPHSHK         : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+       };
+} __UEP11bits_t;
+extern volatile __UEP11bits_t __at (0xF57) UEP11bits;
+
+extern __sfr __at (0xF58) UEP12;
+typedef union {
+       struct {
+               unsigned EPSTALL        : 1;
+               unsigned EPINEN         : 1;
+               unsigned EPOUTEN        : 1;
+               unsigned EPCONDIS       : 1;
+               unsigned EPHSHK         : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+       };
+} __UEP12bits_t;
+extern volatile __UEP12bits_t __at (0xF58) UEP12bits;
+
+extern __sfr __at (0xF59) UEP13;
+typedef union {
+       struct {
+               unsigned EPSTALL        : 1;
+               unsigned EPINEN         : 1;
+               unsigned EPOUTEN        : 1;
+               unsigned EPCONDIS       : 1;
+               unsigned EPHSHK         : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+       };
+} __UEP13bits_t;
+extern volatile __UEP13bits_t __at (0xF59) UEP13bits;
+
+extern __sfr __at (0xF5A) UEP14;
+typedef union {
+       struct {
+               unsigned EPSTALL        : 1;
+               unsigned EPINEN         : 1;
+               unsigned EPOUTEN        : 1;
+               unsigned EPCONDIS       : 1;
+               unsigned EPHSHK         : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+       };
+} __UEP14bits_t;
+extern volatile __UEP14bits_t __at (0xF5A) UEP14bits;
+
+extern __sfr __at (0xF5B) UEP15;
+typedef union {
+       struct {
+               unsigned EPSTALL        : 1;
+               unsigned EPINEN         : 1;
+               unsigned EPOUTEN        : 1;
+               unsigned EPCONDIS       : 1;
+               unsigned EPHSHK         : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+       };
+} __UEP15bits_t;
+extern volatile __UEP15bits_t __at (0xF5B) UEP15bits;
+
+extern __sfr __at (0xF5C) UIE;
+typedef union {
+       struct {
+               unsigned URSTIE         : 1;
+               unsigned UERRIE         : 1;
+               unsigned ACTVIE         : 1;
+               unsigned TRNIE          : 1;
+               unsigned IDLEIE         : 1;
+               unsigned STALLIE        : 1;
+               unsigned SOFIE          : 1;
+               unsigned                : 1;
+       };
+} __UIEbits_t;
+extern volatile __UIEbits_t __at (0xF5C) UIEbits;
+
+extern __sfr __at (0xF5D) UEIE;
+typedef union {
+       struct {
+               unsigned PIDEE          : 1;
+               unsigned CRC5EE         : 1;
+               unsigned CRC16EE        : 1;
+               unsigned DFN8EE         : 1;
+               unsigned BTOEE          : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned BTSEE          : 1;
+       };
+} __UEIEbits_t;
+extern volatile __UEIEbits_t __at (0xF5D) UEIEbits;
+
+extern __sfr __at (0xF5E) UADDR;
+typedef union {
+       struct {
+               unsigned ADDR0          : 1;
+               unsigned ADDR1          : 1;
+               unsigned ADDR2          : 1;
+               unsigned ADDR3          : 1;
+               unsigned ADDR4          : 1;
+               unsigned ADDR5          : 1;
+               unsigned ADDR6          : 1;
+               unsigned                : 1;
+       };
+} __UADDRbits_t;
+extern volatile __UADDRbits_t __at (0xF5E) UADDRbits;
+
+extern __sfr __at (0xF5F) UCFG;
+typedef union {
+       struct {
+               unsigned PPB0           : 1;
+               unsigned PPB1           : 1;
+               unsigned FSEN           : 1;
+               unsigned UTRDIS         : 1;
+               unsigned UPUEN          : 1;
+               unsigned                : 1;
+               unsigned UOEMON         : 1;
+               unsigned UTEYE          : 1;
+       };
+} __UCFGbits_t;
+extern volatile __UCFGbits_t __at (0xF5F) UCFGbits;
+
+extern __sfr __at (0xF60) UFRM;
+
+extern __sfr __at (0xF60) UFRML;
+typedef union {
+       struct {
+               unsigned FRM0           : 1;
+               unsigned FRM1           : 1;
+               unsigned FRM2           : 1;
+               unsigned FRM3           : 1;
+               unsigned FRM4           : 1;
+               unsigned FRM5           : 1;
+               unsigned FRM6           : 1;
+               unsigned FRM7           : 1;
+       };
+} __UFRMLbits_t;
+extern volatile __UFRMLbits_t __at (0xF60) UFRMLbits;
+
+extern __sfr __at (0xF61) UFRMH;
+typedef union {
+       struct {
+               unsigned FRM8           : 1;
+               unsigned FRM9           : 1;
+               unsigned FRM10          : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+       };
+} __UFRMHbits_t;
+extern volatile __UFRMHbits_t __at (0xF61) UFRMHbits;
+
+extern __sfr __at (0xF62) UIR;
+typedef union {
+       struct {
+               unsigned URSTIF         : 1;
+               unsigned UERRIF         : 1;
+               unsigned ACTVIF         : 1;
+               unsigned TRNIF          : 1;
+               unsigned IDLEIF         : 1;
+               unsigned STALLIF        : 1;
+               unsigned SOFIF          : 1;
+               unsigned                : 1;
+       };
+} __UIRbits_t;
+extern volatile __UIRbits_t __at (0xF62) UIRbits;
+
+extern __sfr __at (0xF63) UEIR;
+typedef union {
+       struct {
+               unsigned PIDEF          : 1;
+               unsigned CRC5EF         : 1;
+               unsigned CRC16EF        : 1;
+               unsigned DFN8EF         : 1;
+               unsigned BTOEF          : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned BTSEF          : 1;
+       };
+} __UEIRbits_t;
+extern volatile __UEIRbits_t __at (0xF63) UEIRbits;
+
+extern __sfr __at (0xF64) USTAT;
+typedef union {
+       struct {
+               unsigned                : 1;
+               unsigned PPBI           : 1;
+               unsigned DIR            : 1;
+               unsigned ENDP0          : 1;
+               unsigned ENDP1          : 1;
+               unsigned ENDP2          : 1;
+               unsigned ENDP3          : 1;
+               unsigned                : 1;
+       };
+} __USTATbits_t;
+extern volatile __USTATbits_t __at (0xF64) USTATbits;
+
+extern __sfr __at (0xF65) UCON;
+typedef union {
+       struct {
+               unsigned                : 1;
+               unsigned SUSPND         : 1;
+               unsigned RESUME         : 1;
+               unsigned USBEN          : 1;
+               unsigned PKTDIS         : 1;
+               unsigned SE0            : 1;
+               unsigned PPBRST         : 1;
+               unsigned                : 1;
+       };
+} __UCONbits_t;
+extern volatile __UCONbits_t __at (0xF65) UCONbits;
+
+extern __sfr __at (0xF66) PMDIN1;
+
+extern __sfr __at (0xF66) PMDIN1L;
+
+extern __sfr __at (0xF67) PMDIN1H;
+
+extern __sfr __at (0xF68) PMADDR;
+
+extern __sfr __at (0xF68) PMADDRL;
+
+extern __sfr __at (0xF68) PMDOUT1;
+
+extern __sfr __at (0xF68) PMDOUT1L;
+
+extern __sfr __at (0xF69) PMADDRH;
+typedef union {
+       struct {
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned CS1            : 1;
+               unsigned CS2            : 1;
+       };
+} __PMADDRHbits_t;
+extern volatile __PMADDRHbits_t __at (0xF69) PMADDRHbits;
+
+extern __sfr __at (0xF69) PMDOUT1H;
+
+extern __sfr __at (0xF6A) CMSTAT;
+typedef union {
+       struct {
+               unsigned COUT1          : 1;
+               unsigned COUT2          : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+       };
+} __CMSTATbits_t;
+extern volatile __CMSTATbits_t __at (0xF6A) CMSTATbits;
+
+extern __sfr __at (0xF6A) CMSTATUS;
+typedef union {
+       struct {
+               unsigned COUT1          : 1;
+               unsigned COUT2          : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+       };
+} __CMSTATUSbits_t;
+extern volatile __CMSTATUSbits_t __at (0xF6A) CMSTATUSbits;
+
+extern __sfr __at (0xF6B) SSP2CON2;
+typedef union {
+       struct {
+               unsigned SEN            : 1;
+               unsigned RSEN           : 1;
+               unsigned PEN            : 1;
+               unsigned RCEN           : 1;
+               unsigned ACKEN          : 1;
+               unsigned ACKDT          : 1;
+               unsigned ACKSTAT        : 1;
+               unsigned GCEN           : 1;
+       };
+       struct {
+               unsigned                : 1;
+               unsigned ADMSK1         : 1;
+               unsigned ADMSK2         : 1;
+               unsigned ADMSK3         : 1;
+               unsigned ADMSK4         : 1;
+               unsigned ADMSK5         : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+       };
+} __SSP2CON2bits_t;
+extern volatile __SSP2CON2bits_t __at (0xF6B) SSP2CON2bits;
+
+extern __sfr __at (0xF6C) SSP2CON1;
+typedef union {
+       struct {
+               unsigned SSPM0          : 1;
+               unsigned SSPM1          : 1;
+               unsigned SSPM2          : 1;
+               unsigned SSPM3          : 1;
+               unsigned CKP            : 1;
+               unsigned SSPEN          : 1;
+               unsigned SSPOV          : 1;
+               unsigned WCOL           : 1;
+       };
+} __SSP2CON1bits_t;
+extern volatile __SSP2CON1bits_t __at (0xF6C) SSP2CON1bits;
+
+extern __sfr __at (0xF6D) SSP2STAT;
+typedef union {
+       struct {
+               unsigned BF             : 1;
+               unsigned UA             : 1;
+               unsigned R_W            : 1;
+               unsigned S              : 1;
+               unsigned P              : 1;
+               unsigned D_A            : 1;
+               unsigned CKE            : 1;
+               unsigned SMP            : 1;
+       };
+       struct {
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned I2C_READ       : 1;
+               unsigned I2C_START      : 1;
+               unsigned I2C_STOP       : 1;
+               unsigned I2C_DAT        : 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 R              : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned D              : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+       };
+} __SSP2STATbits_t;
+extern volatile __SSP2STATbits_t __at (0xF6D) SSP2STATbits;
+
+extern __sfr __at (0xF6E) SSP2ADD;
+
+extern __sfr __at (0xF6E) SSP2MSK;
+typedef union {
+       struct {
+               unsigned MSK0           : 1;
+               unsigned MSK1           : 1;
+               unsigned MSK2           : 1;
+               unsigned MSK3           : 1;
+               unsigned MSK4           : 1;
+               unsigned MSK5           : 1;
+               unsigned MSK6           : 1;
+               unsigned MSK7           : 1;
+       };
+} __SSP2MSKbits_t;
+extern volatile __SSP2MSKbits_t __at (0xF6E) SSP2MSKbits;
+
+extern __sfr __at (0xF6F) SSP2BUF;
+
+extern __sfr __at (0xF70) CCP5CON;
+typedef union {
+       struct {
+               unsigned CCP5M0         : 1;
+               unsigned CCP5M1         : 1;
+               unsigned CCP5M2         : 1;
+               unsigned CCP5M3         : 1;
+               unsigned DCCP5Y         : 1;
+               unsigned DCCP5X         : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+       };
+       struct {
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned DC5B0          : 1;
+               unsigned DC5B1          : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+       };
+} __CCP5CONbits_t;
+extern volatile __CCP5CONbits_t __at (0xF70) CCP5CONbits;
+
+extern __sfr __at (0xF71) CCPR5;
+
+extern __sfr __at (0xF71) CCPR5L;
+
+extern __sfr __at (0xF72) CCPR5H;
+
+extern __sfr __at (0xF73) CCP4CON;
+typedef union {
+       struct {
+               unsigned CCP4M0         : 1;
+               unsigned CCP4M1         : 1;
+               unsigned CCP4M2         : 1;
+               unsigned CCP4M3         : 1;
+               unsigned DCCP4Y         : 1;
+               unsigned DCCP4X         : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+       };
+       struct {
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned DC4B0          : 1;
+               unsigned DC4B1          : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+       };
+} __CCP4CONbits_t;
+extern volatile __CCP4CONbits_t __at (0xF73) CCP4CONbits;
+
+extern __sfr __at (0xF74) CCPR4;
+
+extern __sfr __at (0xF74) CCPR4L;
+
+extern __sfr __at (0xF75) CCPR4H;
+
+extern __sfr __at (0xF76) T4CON;
+typedef union {
+       struct {
+               unsigned T4CKPS0        : 1;
+               unsigned T4CKPS1        : 1;
+               unsigned TMR4ON         : 1;
+               unsigned T4OUTPS0       : 1;
+               unsigned T4OUTPS1       : 1;
+               unsigned T4OUTPS2       : 1;
+               unsigned T4OUTPS3       : 1;
+               unsigned                : 1;
+       };
+} __T4CONbits_t;
+extern volatile __T4CONbits_t __at (0xF76) T4CONbits;
+
+extern __sfr __at (0xF77) CVRCON;
+typedef union {
+       struct {
+               unsigned CVR0           : 1;
+               unsigned CVR1           : 1;
+               unsigned CVR2           : 1;
+               unsigned CVR3           : 1;
+               unsigned CVRSS          : 1;
+               unsigned CVRR           : 1;
+               unsigned CVROE          : 1;
+               unsigned CVREN          : 1;
+       };
+} __CVRCONbits_t;
+extern volatile __CVRCONbits_t __at (0xF77) CVRCONbits;
+
+extern __sfr __at (0xF77) PR4;
+
+extern __sfr __at (0xF78) TMR4;
+
+extern __sfr __at (0xF79) T3CON;
+typedef union {
+       struct {
+               unsigned TMR3ON         : 1;
+               unsigned TMR3CS         : 1;
+               unsigned T3SYNC         : 1;
+               unsigned T3CCP1         : 1;
+               unsigned T3CKPS0        : 1;
+               unsigned T3CKPS1        : 1;
+               unsigned T3CCP2         : 1;
+               unsigned RD16           : 1;
+       };
+       struct {
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned T3INSYNC       : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+       };
+       struct {
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned NOT_T3SYNC     : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+       };
+} __T3CONbits_t;
+extern volatile __T3CONbits_t __at (0xF79) T3CONbits;
+
+extern __sfr __at (0xF7A) TMR3L;
+
+extern __sfr __at (0xF7B) TMR3H;
+
+extern __sfr __at (0xF7C) BAUDCON2;
+typedef union {
+       struct {
+               unsigned ABDEN          : 1;
+               unsigned WUE            : 1;
+               unsigned                : 1;
+               unsigned BRG16          : 1;
+               unsigned SCKP           : 1;
+               unsigned DTRXP          : 1;
+               unsigned RCMT           : 1;
+               unsigned ABDOVF         : 1;
+       };
+       struct {
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned TXCKP          : 1;
+               unsigned RXDTP          : 1;
+               unsigned RCIDL          : 1;
+               unsigned                : 1;
+       };
+} __BAUDCON2bits_t;
+extern volatile __BAUDCON2bits_t __at (0xF7C) BAUDCON2bits;
+
+extern __sfr __at (0xF7D) SPBRGH2;
+
+extern __sfr __at (0xF7E) BAUDCON;
+typedef union {
+       struct {
+               unsigned ABDEN          : 1;
+               unsigned WUE            : 1;
+               unsigned                : 1;
+               unsigned BRG16          : 1;
+               unsigned SCKP           : 1;
+               unsigned DTRXP          : 1;
+               unsigned RCMT           : 1;
+               unsigned ABDOVF         : 1;
+       };
+       struct {
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned TXCKP          : 1;
+               unsigned RXDTP          : 1;
+               unsigned RCIDL          : 1;
+               unsigned                : 1;
+       };
+} __BAUDCONbits_t;
+extern volatile __BAUDCONbits_t __at (0xF7E) BAUDCONbits;
+
+extern __sfr __at (0xF7E) BAUDCON1;
+typedef union {
+       struct {
+               unsigned ABDEN          : 1;
+               unsigned WUE            : 1;
+               unsigned                : 1;
+               unsigned BRG16          : 1;
+               unsigned SCKP           : 1;
+               unsigned DTRXP          : 1;
+               unsigned RCMT           : 1;
+               unsigned ABDOVF         : 1;
+       };
+       struct {
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned TXCKP          : 1;
+               unsigned RXDTP          : 1;
+               unsigned RCIDL          : 1;
+               unsigned                : 1;
+       };
+} __BAUDCON1bits_t;
+extern volatile __BAUDCON1bits_t __at (0xF7E) BAUDCON1bits;
+
+extern __sfr __at (0xF7F) SPBRGH;
+
+extern __sfr __at (0xF7F) SPBRGH1;
+
+extern __sfr __at (0xF80) PORTA;
+typedef union {
+       struct {
+               unsigned RA0            : 1;
+               unsigned RA1            : 1;
+               unsigned RA2            : 1;
+               unsigned RA3            : 1;
+               unsigned RA4            : 1;
+               unsigned RA5            : 1;
+               unsigned RA6            : 1;
+               unsigned RA7            : 1;
+       };
+       struct {
+               unsigned AN0            : 1;
+               unsigned AN1            : 1;
+               unsigned AN2            : 1;
+               unsigned AN3            : 1;
+               unsigned T0CKI          : 1;
+               unsigned AN4            : 1;
+               unsigned OSC2           : 1;
+               unsigned                : 1;
+       };
+       struct {
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned VREFM          : 1;
+               unsigned VREFP          : 1;
+               unsigned                : 1;
+               unsigned C2INA          : 1;
+               unsigned CLKO           : 1;
+               unsigned                : 1;
+       };
+} __PORTAbits_t;
+extern volatile __PORTAbits_t __at (0xF80) PORTAbits;
+
+extern __sfr __at (0xF81) PORTB;
+typedef union {
+       struct {
+               unsigned RB0            : 1;
+               unsigned RB1            : 1;
+               unsigned RB2            : 1;
+               unsigned RB3            : 1;
+               unsigned RB4            : 1;
+               unsigned RB5            : 1;
+               unsigned RB6            : 1;
+               unsigned RB7            : 1;
+       };
+       struct {
+               unsigned INT0           : 1;
+               unsigned INT1           : 1;
+               unsigned INT2           : 1;
+               unsigned INT3           : 1;
+               unsigned KBI0           : 1;
+               unsigned KBI1           : 1;
+               unsigned KBI2           : 1;
+               unsigned KBI3           : 1;
+       };
+       struct {
+               unsigned FLT0           : 1;
+               unsigned PMA4           : 1;
+               unsigned PMA3           : 1;
+               unsigned PMA2           : 1;
+               unsigned PMA1           : 1;
+               unsigned PMA0           : 1;
+               unsigned PGC            : 1;
+               unsigned PGD            : 1;
+       };
+} __PORTBbits_t;
+extern volatile __PORTBbits_t __at (0xF81) PORTBbits;
+
+extern __sfr __at (0xF82) PORTC;
+typedef union {
+       struct {
+               unsigned RC0            : 1;
+               unsigned RC1            : 1;
+               unsigned RC2            : 1;
+               unsigned RC3            : 1;
+               unsigned RC4            : 1;
+               unsigned RC5            : 1;
+               unsigned RC6            : 1;
+               unsigned RC7            : 1;
+       };
+       struct {
+               unsigned T1OSO          : 1;
+               unsigned T1OSI          : 1;
+               unsigned CCP1           : 1;
+               unsigned SCK            : 1;
+               unsigned SDI            : 1;
+               unsigned SDO            : 1;
+               unsigned TX             : 1;
+               unsigned RX             : 1;
+       };
+       struct {
+               unsigned T13CKI         : 1;
+               unsigned CCP2_PORTC     : 1;
+               unsigned                : 1;
+               unsigned SCL            : 1;
+               unsigned SDA            : 1;
+               unsigned C2OUT          : 1;
+               unsigned CK             : 1;
+               unsigned DT             : 1;
+       };
+} __PORTCbits_t;
+extern volatile __PORTCbits_t __at (0xF82) PORTCbits;
+
+extern __sfr __at (0xF83) PORTD;
+typedef union {
+       struct {
+               unsigned RD0            : 1;
+               unsigned RD1            : 1;
+               unsigned RD2            : 1;
+               unsigned RD3            : 1;
+               unsigned RD4            : 1;
+               unsigned RD5            : 1;
+               unsigned RD6            : 1;
+               unsigned RD7            : 1;
+       };
+       struct {
+               unsigned PMD0           : 1;
+               unsigned PMD1           : 1;
+               unsigned PMD2           : 1;
+               unsigned PMD3           : 1;
+               unsigned PMD4           : 1;
+               unsigned PMD5           : 1;
+               unsigned PMD6           : 1;
+               unsigned PMD7           : 1;
+       };
+       struct {
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned SDO2           : 1;
+               unsigned SDA2           : 1;
+               unsigned SCL2           : 1;
+               unsigned SS2            : 1;
+       };
+       struct {
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned SDI2           : 1;
+               unsigned SCK2           : 1;
+               unsigned                : 1;
+       };
+} __PORTDbits_t;
+extern volatile __PORTDbits_t __at (0xF83) PORTDbits;
+
+extern __sfr __at (0xF84) PORTE;
+typedef union {
+       struct {
+               unsigned RE0            : 1;
+               unsigned RE1            : 1;
+               unsigned RE2            : 1;
+               unsigned RE3            : 1;
+               unsigned RE4            : 1;
+               unsigned RE5            : 1;
+               unsigned RE6            : 1;
+               unsigned RE7            : 1;
+       };
+       struct {
+               unsigned PMRD           : 1;
+               unsigned PMWR           : 1;
+               unsigned PMBE           : 1;
+               unsigned PMA13          : 1;
+               unsigned PMA12          : 1;
+               unsigned PMA11          : 1;
+               unsigned PMA10          : 1;
+               unsigned PMA9           : 1;
+       };
+       struct {
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned REFO           : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned CCP2_PORTE     : 1;
+       };
+} __PORTEbits_t;
+extern volatile __PORTEbits_t __at (0xF84) PORTEbits;
+
+extern __sfr __at (0xF85) PORTF;
+typedef union {
+       struct {
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned RF2            : 1;
+               unsigned RF3            : 1;
+               unsigned RF4            : 1;
+               unsigned RF5            : 1;
+               unsigned RF6            : 1;
+               unsigned RF7            : 1;
+       };
+       struct {
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned AN7            : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned AN10           : 1;
+               unsigned AN11           : 1;
+               unsigned SS             : 1;
+       };
+       struct {
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned C2INB          : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned CVREF          : 1;
+               unsigned C1INA          : 1;
+               unsigned C1OUT          : 1;
+       };
+       struct {
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned PMA5           : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned C1INB          : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+       };
+} __PORTFbits_t;
+extern volatile __PORTFbits_t __at (0xF85) PORTFbits;
+
+extern __sfr __at (0xF86) PORTG;
+typedef union {
+       struct {
+               unsigned RG0            : 1;
+               unsigned RG1            : 1;
+               unsigned RG2            : 1;
+               unsigned RG3            : 1;
+               unsigned RG4            : 1;
+               unsigned                : 1;
+               unsigned REPU           : 1;
+               unsigned RDPU           : 1;
+       };
+       struct {
+               unsigned CCP3           : 1;
+               unsigned TX2            : 1;
+               unsigned RX2            : 1;
+               unsigned CCP4           : 1;
+               unsigned CCP5           : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+       };
+       struct {
+               unsigned PMA8           : 1;
+               unsigned CK2            : 1;
+               unsigned DT2            : 1;
+               unsigned PMCS1          : 1;
+               unsigned PMCS2          : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+       };
+       struct {
+               unsigned                : 1;
+               unsigned PMA7           : 1;
+               unsigned PMA6           : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+       };
+} __PORTGbits_t;
+extern volatile __PORTGbits_t __at (0xF86) PORTGbits;
+
+extern __sfr __at (0xF89) LATA;
+typedef union {
+       struct {
+               unsigned LATA0          : 1;
+               unsigned LATA1          : 1;
+               unsigned LATA2          : 1;
+               unsigned LATA3          : 1;
+               unsigned LATA4          : 1;
+               unsigned LATA5          : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+       };
+} __LATAbits_t;
+extern volatile __LATAbits_t __at (0xF89) LATAbits;
+
+extern __sfr __at (0xF8A) LATB;
+typedef union {
+       struct {
+               unsigned LATB0          : 1;
+               unsigned LATB1          : 1;
+               unsigned LATB2          : 1;
+               unsigned LATB3          : 1;
+               unsigned LATB4          : 1;
+               unsigned LATB5          : 1;
+               unsigned LATB6          : 1;
+               unsigned LATB7          : 1;
+       };
+} __LATBbits_t;
+extern volatile __LATBbits_t __at (0xF8A) LATBbits;
+
+extern __sfr __at (0xF8B) LATC;
+typedef union {
+       struct {
+               unsigned LATC0          : 1;
+               unsigned LATC1          : 1;
+               unsigned LATC2          : 1;
+               unsigned LATC3          : 1;
+               unsigned LATC4          : 1;
+               unsigned LATC5          : 1;
+               unsigned LATC6          : 1;
+               unsigned LATC7          : 1;
+       };
+} __LATCbits_t;
+extern volatile __LATCbits_t __at (0xF8B) LATCbits;
+
+extern __sfr __at (0xF8C) LATD;
+typedef union {
+       struct {
+               unsigned LATD0          : 1;
+               unsigned LATD1          : 1;
+               unsigned LATD2          : 1;
+               unsigned LATD3          : 1;
+               unsigned LATD4          : 1;
+               unsigned LATD5          : 1;
+               unsigned LATD6          : 1;
+               unsigned LATD7          : 1;
+       };
+} __LATDbits_t;
+extern volatile __LATDbits_t __at (0xF8C) LATDbits;
+
+extern __sfr __at (0xF8D) LATE;
+typedef union {
+       struct {
+               unsigned LATE0          : 1;
+               unsigned LATE1          : 1;
+               unsigned LATE2          : 1;
+               unsigned LATE3          : 1;
+               unsigned LATE4          : 1;
+               unsigned LATE5          : 1;
+               unsigned LATE6          : 1;
+               unsigned LATE7          : 1;
+       };
+} __LATEbits_t;
+extern volatile __LATEbits_t __at (0xF8D) LATEbits;
+
+extern __sfr __at (0xF8E) LATF;
+typedef union {
+       struct {
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned LATF2          : 1;
+               unsigned LATF3          : 1;
+               unsigned LATF4          : 1;
+               unsigned LATF5          : 1;
+               unsigned LATF6          : 1;
+               unsigned LATF7          : 1;
+       };
+} __LATFbits_t;
+extern volatile __LATFbits_t __at (0xF8E) LATFbits;
+
+extern __sfr __at (0xF8F) LATG;
+typedef union {
+       struct {
+               unsigned LATG0          : 1;
+               unsigned LATG1          : 1;
+               unsigned LATG2          : 1;
+               unsigned LATG3          : 1;
+               unsigned LATG4          : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+       };
+} __LATGbits_t;
+extern volatile __LATGbits_t __at (0xF8F) LATGbits;
+
+extern __sfr __at (0xF92) DDRA;
+typedef union {
+       struct {
+               unsigned RA0            : 1;
+               unsigned RA1            : 1;
+               unsigned RA2            : 1;
+               unsigned RA3            : 1;
+               unsigned RA4            : 1;
+               unsigned RA5            : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+       };
+} __DDRAbits_t;
+extern volatile __DDRAbits_t __at (0xF92) DDRAbits;
+
+extern __sfr __at (0xF92) TRISA;
+typedef union {
+       struct {
+               unsigned TRISA0         : 1;
+               unsigned TRISA1         : 1;
+               unsigned TRISA2         : 1;
+               unsigned TRISA3         : 1;
+               unsigned TRISA4         : 1;
+               unsigned TRISA5         : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+       };
+} __TRISAbits_t;
+extern volatile __TRISAbits_t __at (0xF92) TRISAbits;
+
+extern __sfr __at (0xF93) DDRB;
+typedef union {
+       struct {
+               unsigned RB0            : 1;
+               unsigned RB1            : 1;
+               unsigned RB2            : 1;
+               unsigned RB3            : 1;
+               unsigned RB4            : 1;
+               unsigned RB5            : 1;
+               unsigned RB6            : 1;
+               unsigned RB7            : 1;
+       };
+} __DDRBbits_t;
+extern volatile __DDRBbits_t __at (0xF93) DDRBbits;
+
+extern __sfr __at (0xF93) TRISB;
+typedef union {
+       struct {
+               unsigned TRISB0         : 1;
+               unsigned TRISB1         : 1;
+               unsigned TRISB2         : 1;
+               unsigned TRISB3         : 1;
+               unsigned TRISB4         : 1;
+               unsigned TRISB5         : 1;
+               unsigned TRISB6         : 1;
+               unsigned TRISB7         : 1;
+       };
+} __TRISBbits_t;
+extern volatile __TRISBbits_t __at (0xF93) TRISBbits;
+
+extern __sfr __at (0xF94) DDRC;
+typedef union {
+       struct {
+               unsigned RC0            : 1;
+               unsigned RC1            : 1;
+               unsigned RC2            : 1;
+               unsigned RC3            : 1;
+               unsigned RC4            : 1;
+               unsigned RC5            : 1;
+               unsigned RC6            : 1;
+               unsigned RC7            : 1;
+       };
+} __DDRCbits_t;
+extern volatile __DDRCbits_t __at (0xF94) DDRCbits;
+
+extern __sfr __at (0xF94) TRISC;
+typedef union {
+       struct {
+               unsigned TRISC0         : 1;
+               unsigned TRISC1         : 1;
+               unsigned TRISC2         : 1;
+               unsigned TRISC3         : 1;
+               unsigned TRISC4         : 1;
+               unsigned TRISC5         : 1;
+               unsigned TRISC6         : 1;
+               unsigned TRISC7         : 1;
+       };
+} __TRISCbits_t;
+extern volatile __TRISCbits_t __at (0xF94) TRISCbits;
+
+extern __sfr __at (0xF95) DDRD;
+typedef union {
+       struct {
+               unsigned RD0            : 1;
+               unsigned RD1            : 1;
+               unsigned RD2            : 1;
+               unsigned RD3            : 1;
+               unsigned RD4            : 1;
+               unsigned RD5            : 1;
+               unsigned RD6            : 1;
+               unsigned RD7            : 1;
+       };
+} __DDRDbits_t;
+extern volatile __DDRDbits_t __at (0xF95) DDRDbits;
+
+extern __sfr __at (0xF95) TRISD;
+typedef union {
+       struct {
+               unsigned TRISD0         : 1;
+               unsigned TRISD1         : 1;
+               unsigned TRISD2         : 1;
+               unsigned TRISD3         : 1;
+               unsigned TRISD4         : 1;
+               unsigned TRISD5         : 1;
+               unsigned TRISD6         : 1;
+               unsigned TRISD7         : 1;
+       };
+} __TRISDbits_t;
+extern volatile __TRISDbits_t __at (0xF95) TRISDbits;
+
+extern __sfr __at (0xF96) DDRE;
+typedef union {
+       struct {
+               unsigned RE0            : 1;
+               unsigned RE1            : 1;
+               unsigned RE2            : 1;
+               unsigned RE3            : 1;
+               unsigned RE4            : 1;
+               unsigned RE5            : 1;
+               unsigned RE6            : 1;
+               unsigned RE7            : 1;
+       };
+} __DDREbits_t;
+extern volatile __DDREbits_t __at (0xF96) DDREbits;
+
+extern __sfr __at (0xF96) TRISE;
+typedef union {
+       struct {
+               unsigned TRISE0         : 1;
+               unsigned TRISE1         : 1;
+               unsigned TRISE2         : 1;
+               unsigned TRISE3         : 1;
+               unsigned TRISE4         : 1;
+               unsigned TRISE5         : 1;
+               unsigned TRISE6         : 1;
+               unsigned TRISE7         : 1;
+       };
+} __TRISEbits_t;
+extern volatile __TRISEbits_t __at (0xF96) TRISEbits;
+
+extern __sfr __at (0xF97) DDRF;
+typedef union {
+       struct {
+               unsigned                : 1;
+               unsigned RF1            : 1;
+               unsigned RF2            : 1;
+               unsigned RF3            : 1;
+               unsigned RF4            : 1;
+               unsigned RF5            : 1;
+               unsigned RF6            : 1;
+               unsigned RF7            : 1;
+       };
+} __DDRFbits_t;
+extern volatile __DDRFbits_t __at (0xF97) DDRFbits;
+
+extern __sfr __at (0xF97) TRISF;
+typedef union {
+       struct {
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned TRISF2         : 1;
+               unsigned TRISF3         : 1;
+               unsigned TRISF4         : 1;
+               unsigned TRISF5         : 1;
+               unsigned TRISF6         : 1;
+               unsigned TRISF7         : 1;
+       };
+} __TRISFbits_t;
+extern volatile __TRISFbits_t __at (0xF97) TRISFbits;
+
+extern __sfr __at (0xF98) DDRG;
+typedef union {
+       struct {
+               unsigned RG0            : 1;
+               unsigned RG1            : 1;
+               unsigned RG2            : 1;
+               unsigned RG3            : 1;
+               unsigned RG4            : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+       };
+} __DDRGbits_t;
+extern volatile __DDRGbits_t __at (0xF98) DDRGbits;
+
+extern __sfr __at (0xF98) TRISG;
+typedef union {
+       struct {
+               unsigned TRISG0         : 1;
+               unsigned TRISG1         : 1;
+               unsigned TRISG2         : 1;
+               unsigned TRISG3         : 1;
+               unsigned TRISG4         : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+       };
+} __TRISGbits_t;
+extern volatile __TRISGbits_t __at (0xF98) TRISGbits;
+
+extern __sfr __at (0xF9B) OSCTUNE;
+typedef union {
+       struct {
+               unsigned TUN0           : 1;
+               unsigned TUN1           : 1;
+               unsigned TUN2           : 1;
+               unsigned TUN3           : 1;
+               unsigned TUN4           : 1;
+               unsigned TUN5           : 1;
+               unsigned PLLEN          : 1;
+               unsigned INTSRC         : 1;
+       };
+} __OSCTUNEbits_t;
+extern volatile __OSCTUNEbits_t __at (0xF9B) OSCTUNEbits;
+
+extern __sfr __at (0xF9C) RCSTA2;
+typedef union {
+       struct {
+               unsigned RCD8           : 1;
+               unsigned OERR           : 1;
+               unsigned FERR           : 1;
+               unsigned ADDEN          : 1;
+               unsigned CREN           : 1;
+               unsigned SREN           : 1;
+               unsigned RC9            : 1;
+               unsigned SPEN           : 1;
+       };
+       struct {
+               unsigned RX9D           : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 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 RX9            : 1;
+               unsigned                : 1;
+       };
+} __RCSTA2bits_t;
+extern volatile __RCSTA2bits_t __at (0xF9C) RCSTA2bits;
+
+extern __sfr __at (0xF9D) PIE1;
+typedef union {
+       struct {
+               unsigned TMR1IE         : 1;
+               unsigned TMR2IE         : 1;
+               unsigned CCP1IE         : 1;
+               unsigned SSPIE          : 1;
+               unsigned TXIE           : 1;
+               unsigned RCIE           : 1;
+               unsigned ADIE           : 1;
+               unsigned PMPIE          : 1;
+       };
+       struct {
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned SSP1IE         : 1;
+               unsigned TX1IE          : 1;
+               unsigned RC1IE          : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+       };
+} __PIE1bits_t;
+extern volatile __PIE1bits_t __at (0xF9D) PIE1bits;
+
+extern __sfr __at (0xF9E) PIR1;
+typedef union {
+       struct {
+               unsigned TMR1IF         : 1;
+               unsigned TMR2IF         : 1;
+               unsigned CCP1IF         : 1;
+               unsigned SSPIF          : 1;
+               unsigned TXIF           : 1;
+               unsigned RCIF           : 1;
+               unsigned ADIF           : 1;
+               unsigned PMPIF          : 1;
+       };
+       struct {
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned SSP1IF         : 1;
+               unsigned TX1IF          : 1;
+               unsigned RC1IF          : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+       };
+} __PIR1bits_t;
+extern volatile __PIR1bits_t __at (0xF9E) PIR1bits;
+
+extern __sfr __at (0xF9F) IPR1;
+typedef union {
+       struct {
+               unsigned TMR1IP         : 1;
+               unsigned TMR2IP         : 1;
+               unsigned CCP1IP         : 1;
+               unsigned SSPIP          : 1;
+               unsigned TXIP           : 1;
+               unsigned RCIP           : 1;
+               unsigned ADIP           : 1;
+               unsigned PMPIP          : 1;
+       };
+       struct {
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned SSP1IP         : 1;
+               unsigned TX1IP          : 1;
+               unsigned RC1IP          : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+       };
+} __IPR1bits_t;
+extern volatile __IPR1bits_t __at (0xF9F) IPR1bits;
+
+extern __sfr __at (0xFA0) PIE2;
+typedef union {
+       struct {
+               unsigned CCP2IE         : 1;
+               unsigned TMR3IE         : 1;
+               unsigned LVDIE          : 1;
+               unsigned BCLIE          : 1;
+               unsigned USBIE          : 1;
+               unsigned CM1IE          : 1;
+               unsigned CM2IE          : 1;
+               unsigned OSCFIE         : 1;
+       };
+       struct {
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned BCL1IE         : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+       };
+} __PIE2bits_t;
+extern volatile __PIE2bits_t __at (0xFA0) PIE2bits;
+
+extern __sfr __at (0xFA1) PIR2;
+typedef union {
+       struct {
+               unsigned CCP2IF         : 1;
+               unsigned TMR3IF         : 1;
+               unsigned LVDIF          : 1;
+               unsigned BCLIF          : 1;
+               unsigned USBIF          : 1;
+               unsigned CM1IF          : 1;
+               unsigned CM2IF          : 1;
+               unsigned OSCFIF         : 1;
+       };
+       struct {
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned BCL1IF         : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+       };
+} __PIR2bits_t;
+extern volatile __PIR2bits_t __at (0xFA1) PIR2bits;
+
+extern __sfr __at (0xFA2) IPR2;
+typedef union {
+       struct {
+               unsigned CCP2IP         : 1;
+               unsigned TMR3IP         : 1;
+               unsigned LVDIP          : 1;
+               unsigned BCLIP          : 1;
+               unsigned USBIP          : 1;
+               unsigned CM1IP          : 1;
+               unsigned CM2IP          : 1;
+               unsigned OSCFIP         : 1;
+       };
+       struct {
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned BCL1IP         : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+       };
+} __IPR2bits_t;
+extern volatile __IPR2bits_t __at (0xFA2) IPR2bits;
+
+extern __sfr __at (0xFA3) PIE3;
+typedef union {
+       struct {
+               unsigned CCP3IE         : 1;
+               unsigned CCP4IE         : 1;
+               unsigned CCP5IE         : 1;
+               unsigned TMR4IE         : 1;
+               unsigned TX2IE          : 1;
+               unsigned RC2IE          : 1;
+               unsigned BCL2IE         : 1;
+               unsigned SSP2IE         : 1;
+       };
+} __PIE3bits_t;
+extern volatile __PIE3bits_t __at (0xFA3) PIE3bits;
+
+extern __sfr __at (0xFA4) PIR3;
+typedef union {
+       struct {
+               unsigned CCP3IF         : 1;
+               unsigned CCP4IF         : 1;
+               unsigned CCP5IF         : 1;
+               unsigned TMR4IF         : 1;
+               unsigned TX2IF          : 1;
+               unsigned RC2IF          : 1;
+               unsigned BCL2IF         : 1;
+               unsigned SSP2IF         : 1;
+       };
+} __PIR3bits_t;
+extern volatile __PIR3bits_t __at (0xFA4) PIR3bits;
+
+extern __sfr __at (0xFA5) IPR3;
+typedef union {
+       struct {
+               unsigned CCP3IP         : 1;
+               unsigned CCP4IP         : 1;
+               unsigned CCP5IP         : 1;
+               unsigned TMR4IP         : 1;
+               unsigned TX2IP          : 1;
+               unsigned RC2IP          : 1;
+               unsigned BCL2IP         : 1;
+               unsigned SSP2IP         : 1;
+       };
+} __IPR3bits_t;
+extern volatile __IPR3bits_t __at (0xFA5) IPR3bits;
+
+extern __sfr __at (0xFA6) EECON1;
+typedef union {
+       struct {
+               unsigned                : 1;
+               unsigned WR             : 1;
+               unsigned WREN           : 1;
+               unsigned WRERR          : 1;
+               unsigned FREE           : 1;
+               unsigned WPROG          : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+       };
+} __EECON1bits_t;
+extern volatile __EECON1bits_t __at (0xFA6) EECON1bits;
+
+extern __sfr __at (0xFA7) EECON2;
+
+extern __sfr __at (0xFA8) 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 TXD8           : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned TX8_9          : 1;
+               unsigned                : 1;
+       };
+       struct {
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned NOT_TX8        : 1;
+               unsigned                : 1;
+       };
+} __TXSTA2bits_t;
+extern volatile __TXSTA2bits_t __at (0xFA8) TXSTA2bits;
+
+extern __sfr __at (0xFA9) TXREG2;
+
+extern __sfr __at (0xFAA) RCREG2;
+
+extern __sfr __at (0xFAB) SPBRG2;
+
+extern __sfr __at (0xFAC) 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                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned RC9            : 1;
+               unsigned                : 1;
+       };
+       struct {
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 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;
+       };
+} __RCSTAbits_t;
+extern volatile __RCSTAbits_t __at (0xFAC) RCSTAbits;
+
+extern __sfr __at (0xFAC) 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                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned RC9            : 1;
+               unsigned                : 1;
+       };
+       struct {
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 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;
+       };
+} __RCSTA1bits_t;
+extern volatile __RCSTA1bits_t __at (0xFAC) RCSTA1bits;
+
+extern __sfr __at (0xFAD) 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                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned TX8_9          : 1;
+               unsigned                : 1;
+       };
+       struct {
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned NOT_TX8        : 1;
+               unsigned                : 1;
+       };
+} __TXSTAbits_t;
+extern volatile __TXSTAbits_t __at (0xFAD) TXSTAbits;
+
+extern __sfr __at (0xFAD) 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                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned TX8_9          : 1;
+               unsigned                : 1;
+       };
+       struct {
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned NOT_TX8        : 1;
+               unsigned                : 1;
+       };
+} __TXSTA1bits_t;
+extern volatile __TXSTA1bits_t __at (0xFAD) TXSTA1bits;
+
+extern __sfr __at (0xFAE) TXREG;
+
+extern __sfr __at (0xFAE) TXREG1;
+
+extern __sfr __at (0xFAF) RCREG;
+
+extern __sfr __at (0xFAF) RCREG1;
+
+extern __sfr __at (0xFB0) SPBRG;
+
+extern __sfr __at (0xFB0) SPBRG1;
+
+extern __sfr __at (0xFB1) CCP3CON;
+typedef union {
+       struct {
+               unsigned CCP3M0         : 1;
+               unsigned CCP3M1         : 1;
+               unsigned CCP3M2         : 1;
+               unsigned CCP3M3         : 1;
+               unsigned DC3B0          : 1;
+               unsigned DC3B1          : 1;
+               unsigned P3M0           : 1;
+               unsigned P3M1           : 1;
+       };
+       struct {
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned CCP3Y          : 1;
+               unsigned CCP3X          : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+       };
+} __CCP3CONbits_t;
+extern volatile __CCP3CONbits_t __at (0xFB1) CCP3CONbits;
+
+extern __sfr __at (0xFB1) ECCP3CON;
+typedef union {
+       struct {
+               unsigned CCP3M0         : 1;
+               unsigned CCP3M1         : 1;
+               unsigned CCP3M2         : 1;
+               unsigned CCP3M3         : 1;
+               unsigned DC3B0          : 1;
+               unsigned DC3B1          : 1;
+               unsigned P3M0           : 1;
+               unsigned P3M1           : 1;
+       };
+       struct {
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned CCP3Y          : 1;
+               unsigned CCP3X          : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+       };
+} __ECCP3CONbits_t;
+extern volatile __ECCP3CONbits_t __at (0xFB1) ECCP3CONbits;
+
+extern __sfr __at (0xFB2) CCPR3;
+
+extern __sfr __at (0xFB2) CCPR3L;
+
+extern __sfr __at (0xFB3) CCPR3H;
+
+extern __sfr __at (0xFB4) ECCP3DEL;
+typedef union {
+       struct {
+               unsigned PDC0           : 1;
+               unsigned PDC1           : 1;
+               unsigned PDC2           : 1;
+               unsigned PDC3           : 1;
+               unsigned PDC4           : 1;
+               unsigned PDC5           : 1;
+               unsigned PDC6           : 1;
+               unsigned PRSEN          : 1;
+       };
+       struct {
+               unsigned P3DC0          : 1;
+               unsigned P3DC1          : 1;
+               unsigned P3DC2          : 1;
+               unsigned P3DC3          : 1;
+               unsigned P3DC4          : 1;
+               unsigned P3DC5          : 1;
+               unsigned P3DC6          : 1;
+               unsigned P3RSEN         : 1;
+       };
+} __ECCP3DELbits_t;
+extern volatile __ECCP3DELbits_t __at (0xFB4) ECCP3DELbits;
+
+extern __sfr __at (0xFB5) ECCP3AS;
+typedef union {
+       struct {
+               unsigned PSSBD0         : 1;
+               unsigned PSSBD1         : 1;
+               unsigned PSSAC0         : 1;
+               unsigned PSSAC1         : 1;
+               unsigned ECCPAS0        : 1;
+               unsigned ECCPAS1        : 1;
+               unsigned ECCPAS2        : 1;
+               unsigned ECCPASE        : 1;
+       };
+       struct {
+               unsigned PSS3BD0        : 1;
+               unsigned PSS3BD1        : 1;
+               unsigned PSS3AC0        : 1;
+               unsigned PSS3AC1        : 1;
+               unsigned ECCP3AS0       : 1;
+               unsigned ECCP3AS1       : 1;
+               unsigned ECCP3AS2       : 1;
+               unsigned ECCP3ASE       : 1;
+       };
+} __ECCP3ASbits_t;
+extern volatile __ECCP3ASbits_t __at (0xFB5) ECCP3ASbits;
+
+extern __sfr __at (0xFB6) CCP2CON;
+typedef union {
+       struct {
+               unsigned CCP2M0         : 1;
+               unsigned CCP2M1         : 1;
+               unsigned CCP2M2         : 1;
+               unsigned CCP2M3         : 1;
+               unsigned DC2B0          : 1;
+               unsigned DC2B1          : 1;
+               unsigned P2M0           : 1;
+               unsigned P2M1           : 1;
+       };
+       struct {
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned CCP2Y          : 1;
+               unsigned CCP2X          : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+       };
+} __CCP2CONbits_t;
+extern volatile __CCP2CONbits_t __at (0xFB6) CCP2CONbits;
+
+extern __sfr __at (0xFB6) ECCP2CON;
+typedef union {
+       struct {
+               unsigned CCP2M0         : 1;
+               unsigned CCP2M1         : 1;
+               unsigned CCP2M2         : 1;
+               unsigned CCP2M3         : 1;
+               unsigned DC2B0          : 1;
+               unsigned DC2B1          : 1;
+               unsigned P2M0           : 1;
+               unsigned P2M1           : 1;
+       };
+       struct {
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned CCP2Y          : 1;
+               unsigned CCP2X          : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+       };
+} __ECCP2CONbits_t;
+extern volatile __ECCP2CONbits_t __at (0xFB6) ECCP2CONbits;
+
+extern __sfr __at (0xFB7) CCPR2;
+
+extern __sfr __at (0xFB7) CCPR2L;
+
+extern __sfr __at (0xFB8) CCPR2H;
+
+extern __sfr __at (0xFB9) ECCP2DEL;
+typedef union {
+       struct {
+               unsigned PDC0           : 1;
+               unsigned PDC1           : 1;
+               unsigned PDC2           : 1;
+               unsigned PDC3           : 1;
+               unsigned PDC4           : 1;
+               unsigned PDC5           : 1;
+               unsigned PDC6           : 1;
+               unsigned PRSEN          : 1;
+       };
+       struct {
+               unsigned P2DC0          : 1;
+               unsigned P2DC1          : 1;
+               unsigned P2DC2          : 1;
+               unsigned P2DC3          : 1;
+               unsigned P2DC4          : 1;
+               unsigned P2DC5          : 1;
+               unsigned P2DC6          : 1;
+               unsigned P2RSEN         : 1;
+       };
+} __ECCP2DELbits_t;
+extern volatile __ECCP2DELbits_t __at (0xFB9) ECCP2DELbits;
+
+extern __sfr __at (0xFBA) ECCP2AS;
+typedef union {
+       struct {
+               unsigned PSSBD0         : 1;
+               unsigned PSSBD1         : 1;
+               unsigned PSSAC0         : 1;
+               unsigned PSSAC1         : 1;
+               unsigned ECCPAS0        : 1;
+               unsigned ECCPAS1        : 1;
+               unsigned ECCPAS2        : 1;
+               unsigned ECCPASE        : 1;
+       };
+       struct {
+               unsigned PSS2BD0        : 1;
+               unsigned PSS2BD1        : 1;
+               unsigned PSS2AC0        : 1;
+               unsigned PSS2AC1        : 1;
+               unsigned ECCP2AS0       : 1;
+               unsigned ECCP2AS1       : 1;
+               unsigned ECCP2AS2       : 1;
+               unsigned ECCP2ASE       : 1;
+       };
+} __ECCP2ASbits_t;
+extern volatile __ECCP2ASbits_t __at (0xFBA) ECCP2ASbits;
+
+extern __sfr __at (0xFBB) 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;
+       };
+} __CCP1CONbits_t;
+extern volatile __CCP1CONbits_t __at (0xFBB) CCP1CONbits;
+
+extern __sfr __at (0xFBB) 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;
+       };
+} __ECCP1CONbits_t;
+extern volatile __ECCP1CONbits_t __at (0xFBB) ECCP1CONbits;
+
+extern __sfr __at (0xFBC) CCPR1;
+
+extern __sfr __at (0xFBC) CCPR1L;
+
+extern __sfr __at (0xFBD) CCPR1H;
+
+extern __sfr __at (0xFBE) ECCP1DEL;
+typedef union {
+       struct {
+               unsigned PDC0           : 1;
+               unsigned PDC1           : 1;
+               unsigned PDC2           : 1;
+               unsigned PDC3           : 1;
+               unsigned PDC4           : 1;
+               unsigned PDC5           : 1;
+               unsigned PDC6           : 1;
+               unsigned PRSEN          : 1;
+       };
+       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;
+       };
+} __ECCP1DELbits_t;
+extern volatile __ECCP1DELbits_t __at (0xFBE) ECCP1DELbits;
+
+extern __sfr __at (0xFBF) ECCP1AS;
+typedef union {
+       struct {
+               unsigned PSSBD0         : 1;
+               unsigned PSSBD1         : 1;
+               unsigned PSSAC0         : 1;
+               unsigned PSSAC1         : 1;
+               unsigned ECCPAS0        : 1;
+               unsigned ECCPAS1        : 1;
+               unsigned ECCPAS2        : 1;
+               unsigned ECCPASE        : 1;
+       };
+       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;
+       };
+} __ECCP1ASbits_t;
+extern volatile __ECCP1ASbits_t __at (0xFBF) ECCP1ASbits;
+
+extern __sfr __at (0xFC0) WDTCON;
+typedef union {
+       struct {
+               unsigned SWDTE          : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned DEVCFG         : 1;
+               unsigned                : 1;
+               unsigned LVDSTAT        : 1;
+               unsigned REGSLP         : 1;
+       };
+       struct {
+               unsigned SWDTEN         : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned ADSHR          : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+       };
+} __WDTCONbits_t;
+extern volatile __WDTCONbits_t __at (0xFC0) WDTCONbits;
+
+extern __sfr __at (0xFC1) ADCON1;
+typedef union {
+       struct {
+               unsigned ADCS0          : 1;
+               unsigned ADCS1          : 1;
+               unsigned ADCS2          : 1;
+               unsigned ACQT0          : 1;
+               unsigned ACQT1          : 1;
+               unsigned ACQT2          : 1;
+               unsigned ADCAL          : 1;
+               unsigned ADFM           : 1;
+       };
+} __ADCON1bits_t;
+extern volatile __ADCON1bits_t __at (0xFC1) ADCON1bits;
+
+extern __sfr __at (0xFC1) ANCON0;
+typedef union {
+       struct {
+               unsigned PCFG0          : 1;
+               unsigned PCFG1          : 1;
+               unsigned PCFG2          : 1;
+               unsigned PCFG3          : 1;
+               unsigned PCFG4          : 1;
+               unsigned PCFG5          : 1;
+               unsigned PCFG6          : 1;
+               unsigned PCFG7          : 1;
+       };
+} __ANCON0bits_t;
+extern volatile __ANCON0bits_t __at (0xFC1) ANCON0bits;
+
+extern __sfr __at (0xFC2) ADCON0;
+typedef union {
+       struct {
+               unsigned ADON           : 1;
+               unsigned DONE           : 1;
+               unsigned CHS0           : 1;
+               unsigned CHS1           : 1;
+               unsigned CHS2           : 1;
+               unsigned CHS3           : 1;
+               unsigned VCFG0          : 1;
+               unsigned VCFG1          : 1;
+       };
+       struct {
+               unsigned                : 1;
+               unsigned GO_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;
+       };
+} __ADCON0bits_t;
+extern volatile __ADCON0bits_t __at (0xFC2) ADCON0bits;
+
+extern __sfr __at (0xFC2) ANCON1;
+typedef union {
+       struct {
+               unsigned PCFG8          : 1;
+               unsigned PCFG9          : 1;
+               unsigned PCFG10         : 1;
+               unsigned PCFG11         : 1;
+               unsigned PCFG12         : 1;
+               unsigned PCFG13         : 1;
+               unsigned PCFG14         : 1;
+               unsigned PCFG15         : 1;
+       };
+} __ANCON1bits_t;
+extern volatile __ANCON1bits_t __at (0xFC2) ANCON1bits;
+
+extern __sfr __at (0xFC3) ADRES;
+
+extern __sfr __at (0xFC3) ADRESL;
+
+extern __sfr __at (0xFC4) ADRESH;
+
+extern __sfr __at (0xFC5) SSP1CON2;
+typedef union {
+       struct {
+               unsigned SEN            : 1;
+               unsigned RSEN           : 1;
+               unsigned PEN            : 1;
+               unsigned RCEN           : 1;
+               unsigned ACKEN          : 1;
+               unsigned ACKDT          : 1;
+               unsigned ACKSTAT        : 1;
+               unsigned GCEN           : 1;
+       };
+       struct {
+               unsigned                : 1;
+               unsigned ADMSK1         : 1;
+               unsigned ADMSK2         : 1;
+               unsigned ADMSK3         : 1;
+               unsigned ADMSK4         : 1;
+               unsigned ADMSK5         : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+       };
+} __SSP1CON2bits_t;
+extern volatile __SSP1CON2bits_t __at (0xFC5) SSP1CON2bits;
+
+extern __sfr __at (0xFC5) SSPCON2;
+typedef union {
+       struct {
+               unsigned SEN            : 1;
+               unsigned RSEN           : 1;
+               unsigned PEN            : 1;
+               unsigned RCEN           : 1;
+               unsigned ACKEN          : 1;
+               unsigned ACKDT          : 1;
+               unsigned ACKSTAT        : 1;
+               unsigned GCEN           : 1;
+       };
+       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 volatile __SSPCON2bits_t __at (0xFC5) SSPCON2bits;
+
+extern __sfr __at (0xFC6) SSP1CON1;
+typedef union {
+       struct {
+               unsigned SSPM0          : 1;
+               unsigned SSPM1          : 1;
+               unsigned SSPM2          : 1;
+               unsigned SSPM3          : 1;
+               unsigned CKP            : 1;
+               unsigned SSPEN          : 1;
+               unsigned SSPOV          : 1;
+               unsigned WCOL           : 1;
+       };
+} __SSP1CON1bits_t;
+extern volatile __SSP1CON1bits_t __at (0xFC6) SSP1CON1bits;
+
+extern __sfr __at (0xFC6) SSPCON1;
+typedef union {
+       struct {
+               unsigned SSPM0          : 1;
+               unsigned SSPM1          : 1;
+               unsigned SSPM2          : 1;
+               unsigned SSPM3          : 1;
+               unsigned CKP            : 1;
+               unsigned SSPEN          : 1;
+               unsigned SSPOV          : 1;
+               unsigned WCOL           : 1;
+       };
+} __SSPCON1bits_t;
+extern volatile __SSPCON1bits_t __at (0xFC6) SSPCON1bits;
+
+extern __sfr __at (0xFC7) SSP1STAT;
+typedef union {
+       struct {
+               unsigned BF             : 1;
+               unsigned UA             : 1;
+               unsigned R_W            : 1;
+               unsigned S              : 1;
+               unsigned P              : 1;
+               unsigned D_A            : 1;
+               unsigned CKE            : 1;
+               unsigned SMP            : 1;
+       };
+       struct {
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned I2C_READ       : 1;
+               unsigned I2C_START      : 1;
+               unsigned I2C_STOP       : 1;
+               unsigned I2C_DAT        : 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 R              : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned D              : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+       };
+} __SSP1STATbits_t;
+extern volatile __SSP1STATbits_t __at (0xFC7) SSP1STATbits;
+
+extern __sfr __at (0xFC7) SSPSTAT;
+typedef union {
+       struct {
+               unsigned BF             : 1;
+               unsigned UA             : 1;
+               unsigned R_W            : 1;
+               unsigned S              : 1;
+               unsigned P              : 1;
+               unsigned D_A            : 1;
+               unsigned CKE            : 1;
+               unsigned SMP            : 1;
+       };
+       struct {
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned I2C_READ       : 1;
+               unsigned I2C_START      : 1;
+               unsigned I2C_STOP       : 1;
+               unsigned I2C_DAT        : 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 R              : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned D              : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+       };
+} __SSPSTATbits_t;
+extern volatile __SSPSTATbits_t __at (0xFC7) SSPSTATbits;
+
+extern __sfr __at (0xFC8) SSP1ADD;
+
+extern __sfr __at (0xFC8) SSP1MSK;
+
+extern __sfr __at (0xFC8) SSPADD;
+
+extern __sfr __at (0xFC9) SSP1BUF;
+
+extern __sfr __at (0xFC9) SSPBUF;
+
+extern __sfr __at (0xFCA) T2CON;
+typedef union {
+       struct {
+               unsigned T2CKPS0        : 1;
+               unsigned T2CKPS1        : 1;
+               unsigned TMR2ON         : 1;
+               unsigned T2OUTPS0       : 1;
+               unsigned T2OUTPS1       : 1;
+               unsigned T2OUTPS2       : 1;
+               unsigned T2OUTPS3       : 1;
+               unsigned                : 1;
+       };
+} __T2CONbits_t;
+extern volatile __T2CONbits_t __at (0xFCA) T2CONbits;
+
+extern __sfr __at (0xFCB) PR2;
+
+extern __sfr __at (0xFCC) PADCFG1;
+typedef union {
+       struct {
+               unsigned PMPTTL         : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+       };
+} __PADCFG1bits_t;
+extern volatile __PADCFG1bits_t __at (0xFCC) PADCFG1bits;
+
+extern __sfr __at (0xFCC) TMR2;
+
+extern __sfr __at (0xFCD) ODCON3;
+typedef union {
+       struct {
+               unsigned SPI1OD         : 1;
+               unsigned SPI2OD         : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+       };
+} __ODCON3bits_t;
+extern volatile __ODCON3bits_t __at (0xFCD) ODCON3bits;
+
+extern __sfr __at (0xFCD) T1CON;
+typedef union {
+       struct {
+               unsigned TMR1ON         : 1;
+               unsigned TMR1CS         : 1;
+               unsigned T1SYNC         : 1;
+               unsigned T1OSCEN        : 1;
+               unsigned T1CKPS0        : 1;
+               unsigned T1CKPS1        : 1;
+               unsigned T1RUN          : 1;
+               unsigned RD16           : 1;
+       };
+       struct {
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned T1INSYNC       : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+       };
+       struct {
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned NOT_T1SYNC     : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+       };
+} __T1CONbits_t;
+extern volatile __T1CONbits_t __at (0xFCD) T1CONbits;
+
+extern __sfr __at (0xFCE) ODCON2;
+typedef union {
+       struct {
+               unsigned USART1OD       : 1;
+               unsigned USART2OD       : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+       };
+       struct {
+               unsigned U1OD           : 1;
+               unsigned U2OD           : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+       };
+} __ODCON2bits_t;
+extern volatile __ODCON2bits_t __at (0xFCE) ODCON2bits;
+
+extern __sfr __at (0xFCE) TMR1L;
+
+extern __sfr __at (0xFCF) ODCON1;
+typedef union {
+       struct {
+               unsigned ECCP1OD        : 1;
+               unsigned ECCP2OD        : 1;
+               unsigned ECCP3OD        : 1;
+               unsigned CCP4OD         : 1;
+               unsigned CCP5OD         : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+       };
+} __ODCON1bits_t;
+extern volatile __ODCON1bits_t __at (0xFCF) ODCON1bits;
+
+extern __sfr __at (0xFCF) TMR1H;
+
+extern __sfr __at (0xFD0) RCON;
+typedef union {
+       struct {
+               unsigned NOT_BOR        : 1;
+               unsigned NOT_POR        : 1;
+               unsigned NOT_PD         : 1;
+               unsigned NOT_TO         : 1;
+               unsigned NOT_RI         : 1;
+               unsigned NOT_CM         : 1;
+               unsigned                : 1;
+               unsigned IPEN           : 1;
+       };
+       struct {
+               unsigned BOR            : 1;
+               unsigned POR            : 1;
+               unsigned PD             : 1;
+               unsigned TO             : 1;
+               unsigned RI             : 1;
+               unsigned CM             : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+       };
+} __RCONbits_t;
+extern volatile __RCONbits_t __at (0xFD0) RCONbits;
+
+extern __sfr __at (0xFD1) CM2CON;
+typedef union {
+       struct {
+               unsigned C1CH0          : 1;
+               unsigned C1CH1          : 1;
+               unsigned CREF           : 1;
+               unsigned EVPOL0         : 1;
+               unsigned EVPOL1         : 1;
+               unsigned CPOL           : 1;
+               unsigned COE            : 1;
+               unsigned CON            : 1;
+       };
+       struct {
+               unsigned CCH0           : 1;
+               unsigned CCH1           : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+       };
+} __CM2CONbits_t;
+extern volatile __CM2CONbits_t __at (0xFD1) CM2CONbits;
+
+extern __sfr __at (0xFD1) CM2CON1;
+typedef union {
+       struct {
+               unsigned C1CH0          : 1;
+               unsigned C1CH1          : 1;
+               unsigned CREF           : 1;
+               unsigned EVPOL0         : 1;
+               unsigned EVPOL1         : 1;
+               unsigned CPOL           : 1;
+               unsigned COE            : 1;
+               unsigned CON            : 1;
+       };
+       struct {
+               unsigned CCH0           : 1;
+               unsigned CCH1           : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+       };
+} __CM2CON1bits_t;
+extern volatile __CM2CON1bits_t __at (0xFD1) CM2CON1bits;
+
+extern __sfr __at (0xFD2) CM1CON;
+typedef union {
+       struct {
+               unsigned C1CH0          : 1;
+               unsigned C1CH1          : 1;
+               unsigned CREF           : 1;
+               unsigned EVPOL0         : 1;
+               unsigned EVPOL1         : 1;
+               unsigned CPOL           : 1;
+               unsigned COE            : 1;
+               unsigned CON            : 1;
+       };
+       struct {
+               unsigned CCH0           : 1;
+               unsigned CCH1           : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+       };
+} __CM1CONbits_t;
+extern volatile __CM1CONbits_t __at (0xFD2) CM1CONbits;
+
+extern __sfr __at (0xFD2) CM1CON1;
+typedef union {
+       struct {
+               unsigned C1CH0          : 1;
+               unsigned C1CH1          : 1;
+               unsigned CREF           : 1;
+               unsigned EVPOL0         : 1;
+               unsigned EVPOL1         : 1;
+               unsigned CPOL           : 1;
+               unsigned COE            : 1;
+               unsigned CON            : 1;
+       };
+       struct {
+               unsigned CCH0           : 1;
+               unsigned CCH1           : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+       };
+} __CM1CON1bits_t;
+extern volatile __CM1CON1bits_t __at (0xFD2) CM1CON1bits;
+
+extern __sfr __at (0xFD3) OSCCON;
+typedef union {
+       struct {
+               unsigned SCS0           : 1;
+               unsigned SCS1           : 1;
+               unsigned IOFS           : 1;
+               unsigned OSTS           : 1;
+               unsigned IRCF0          : 1;
+               unsigned IRCF1          : 1;
+               unsigned IRCF2          : 1;
+               unsigned IDLEN          : 1;
+       };
+       struct {
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned FLTS           : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+       };
+} __OSCCONbits_t;
+extern volatile __OSCCONbits_t __at (0xFD3) OSCCONbits;
+
+extern __sfr __at (0xFD3) 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;
+       };
+} __REFOCONbits_t;
+extern volatile __REFOCONbits_t __at (0xFD3) REFOCONbits;
+
+extern __sfr __at (0xFD5) T0CON;
+typedef union {
+       struct {
+               unsigned T0PS0          : 1;
+               unsigned T0PS1          : 1;
+               unsigned T0PS2          : 1;
+               unsigned PSA            : 1;
+               unsigned T0SE           : 1;
+               unsigned T0CS           : 1;
+               unsigned T08BIT         : 1;
+               unsigned TMR0ON         : 1;
+       };
+       struct {
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned T0PS3          : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+       };
+} __T0CONbits_t;
+extern volatile __T0CONbits_t __at (0xFD5) T0CONbits;
+
+extern __sfr __at (0xFD6) TMR0L;
+
+extern __sfr __at (0xFD7) TMR0H;
+
+extern __sfr __at (0xFD8) STATUS;
+typedef union {
+       struct {
+               unsigned C              : 1;
+               unsigned DC             : 1;
+               unsigned Z              : 1;
+               unsigned OV             : 1;
+               unsigned N              : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+       };
+} __STATUSbits_t;
+extern volatile __STATUSbits_t __at (0xFD8) STATUSbits;
+
+extern __sfr __at (0xFD9) FSR2L;
+
+extern __sfr __at (0xFDA) FSR2H;
+
+extern __sfr __at (0xFDB) PLUSW2;
+
+extern __sfr __at (0xFDC) PREINC2;
+
+extern __sfr __at (0xFDD) POSTDEC2;
+
+extern __sfr __at (0xFDE) POSTINC2;
+
+extern __sfr __at (0xFDF) INDF2;
+
+extern __sfr __at (0xFE0) BSR;
+
+extern __sfr __at (0xFE1) FSR1L;
+
+extern __sfr __at (0xFE2) FSR1H;
+
+extern __sfr __at (0xFE3) PLUSW1;
+
+extern __sfr __at (0xFE4) PREINC1;
+
+extern __sfr __at (0xFE5) POSTDEC1;
+
+extern __sfr __at (0xFE6) POSTINC1;
+
+extern __sfr __at (0xFE7) INDF1;
+
+extern __sfr __at (0xFE8) WREG;
+
+extern __sfr __at (0xFE9) FSR0L;
+
+extern __sfr __at (0xFEA) FSR0H;
+
+extern __sfr __at (0xFEB) PLUSW0;
+
+extern __sfr __at (0xFEC) PREINC0;
+
+extern __sfr __at (0xFED) POSTDEC0;
+
+extern __sfr __at (0xFEE) POSTINC0;
+
+extern __sfr __at (0xFEF) INDF0;
+
+extern __sfr __at (0xFF0) INTCON3;
+typedef union {
+       struct {
+               unsigned INT1F          : 1;
+               unsigned INT2F          : 1;
+               unsigned INT3F          : 1;
+               unsigned INT1E          : 1;
+               unsigned INT2E          : 1;
+               unsigned INT3E          : 1;
+               unsigned INT1P          : 1;
+               unsigned INT2P          : 1;
+       };
+       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;
+       };
+} __INTCON3bits_t;
+extern volatile __INTCON3bits_t __at (0xFF0) INTCON3bits;
+
+extern __sfr __at (0xFF1) INTCON2;
+typedef union {
+       struct {
+               unsigned RBIP           : 1;
+               unsigned INT3P          : 1;
+               unsigned T0IP           : 1;
+               unsigned INTEDG3        : 1;
+               unsigned INTEDG2        : 1;
+               unsigned INTEDG1        : 1;
+               unsigned INTEDG0        : 1;
+               unsigned NOT_RBPU       : 1;
+       };
+       struct {
+               unsigned                : 1;
+               unsigned INT3IP         : 1;
+               unsigned TMR0IP         : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned RBPU           : 1;
+       };
+} __INTCON2bits_t;
+extern volatile __INTCON2bits_t __at (0xFF1) INTCON2bits;
+
+extern __sfr __at (0xFF2) INTCON;
+typedef union {
+       struct {
+               unsigned RBIF           : 1;
+               unsigned INT0F          : 1;
+               unsigned T0IF           : 1;
+               unsigned RBIE           : 1;
+               unsigned INT0E          : 1;
+               unsigned T0IE           : 1;
+               unsigned PEIE           : 1;
+               unsigned GIE            : 1;
+       };
+       struct {
+               unsigned                : 1;
+               unsigned INT0IF         : 1;
+               unsigned TMR0IF         : 1;
+               unsigned                : 1;
+               unsigned INT0IE         : 1;
+               unsigned TMR0IE         : 1;
+               unsigned GIEL           : 1;
+               unsigned GIEH           : 1;
+       };
+} __INTCONbits_t;
+extern volatile __INTCONbits_t __at (0xFF2) INTCONbits;
+
+extern __sfr __at (0xFF3) PROD;
+
+extern __sfr __at (0xFF3) PRODL;
+
+extern __sfr __at (0xFF4) PRODH;
+
+extern __sfr __at (0xFF5) TABLAT;
+
+extern __sfr __at (0xFF6) TBLPTR;
+
+extern __sfr __at (0xFF6) TBLPTRL;
+
+extern __sfr __at (0xFF7) TBLPTRH;
+
+extern __sfr __at (0xFF8) TBLPTRU;
+
+extern __sfr __at (0xFF9) PC;
+
+extern __sfr __at (0xFF9) PCL;
+
+extern __sfr __at (0xFFA) PCLATH;
+
+extern __sfr __at (0xFFB) PCLATU;
+
+extern __sfr __at (0xFFC) STKPTR;
+typedef union {
+       struct {
+               unsigned STKPTR0        : 1;
+               unsigned STKPTR1        : 1;
+               unsigned STKPTR2        : 1;
+               unsigned STKPTR3        : 1;
+               unsigned STKPTR4        : 1;
+               unsigned                : 1;
+               unsigned STKUNF         : 1;
+               unsigned STKOVF         : 1;
+       };
+       struct {
+               unsigned SP0            : 1;
+               unsigned SP1            : 1;
+               unsigned SP2            : 1;
+               unsigned SP3            : 1;
+               unsigned SP4            : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned STKFUL         : 1;
+       };
+} __STKPTRbits_t;
+extern volatile __STKPTRbits_t __at (0xFFC) STKPTRbits;
+
+extern __sfr __at (0xFFD) TOS;
+
+extern __sfr __at (0xFFD) TOSL;
+
+extern __sfr __at (0xFFE) TOSH;
+
+extern __sfr __at (0xFFF) TOSU;
+
+
+#endif
+
diff --git a/device/include/pic16/pic18f85j50.h b/device/include/pic16/pic18f85j50.h
new file mode 100644 (file)
index 0000000..a3ff791
--- /dev/null
@@ -0,0 +1,26 @@
+/*
+ * pic18f85j50.h - device specific declarations
+ */
+
+#ifndef __PIC18F85J50_H__
+#define __PIC18F85J50_H__ 1
+
+#include "pic18f87j50.h"
+
+#undef __CONFIG1L
+#undef __CONFIG1H
+#undef __CONFIG2L
+#undef __CONFIG2H
+#undef __CONFIG3L
+#undef __CONFIG3H
+
+// Configuration Bits
+#define        __CONFIG1L              0x7FF8
+#define        __CONFIG1H              0x7FF9
+#define        __CONFIG2L              0x7FFA
+#define        __CONFIG2H              0x7FFB
+#define        __CONFIG3L              0x7FFC
+#define        __CONFIG3H              0x7FFD
+
+#endif
+
diff --git a/device/include/pic16/pic18f86j50.h b/device/include/pic16/pic18f86j50.h
new file mode 100644 (file)
index 0000000..55b61a5
--- /dev/null
@@ -0,0 +1,26 @@
+/*
+ * pic18f86j50.h - device specific declarations
+ */
+
+#ifndef __PIC18F86J50_H__
+#define __PIC18F86J50_H__ 1
+
+#include "pic18f87j50.h"
+
+#undef __CONFIG1L
+#undef __CONFIG1H
+#undef __CONFIG2L
+#undef __CONFIG2H
+#undef __CONFIG3L
+#undef __CONFIG3H
+
+// Configuration Bits
+#define        __CONFIG1L              0xFFF8
+#define        __CONFIG1H              0xFFF9
+#define        __CONFIG2L              0xFFFA
+#define        __CONFIG2H              0xFFFB
+#define        __CONFIG3L              0xFFFC
+#define        __CONFIG3H              0xFFFD
+
+#endif
+
diff --git a/device/include/pic16/pic18f86j55.h b/device/include/pic16/pic18f86j55.h
new file mode 100644 (file)
index 0000000..33052bf
--- /dev/null
@@ -0,0 +1,26 @@
+/*
+ * pic18f86j55.h - device specific declarations
+ */
+
+#ifndef __PIC18F86J55_H__
+#define __PIC18F86J55_H__ 1
+
+#include "pic18f87j50.h"
+
+#undef __CONFIG1L
+#undef __CONFIG1H
+#undef __CONFIG2L
+#undef __CONFIG2H
+#undef __CONFIG3L
+#undef __CONFIG3H
+
+// Configuration Bits
+#define        __CONFIG1L              0x17FF8
+#define        __CONFIG1H              0x17FF9
+#define        __CONFIG2L              0x17FFA
+#define        __CONFIG2H              0x17FFB
+#define        __CONFIG3L              0x17FFC
+#define        __CONFIG3H              0x17FFD
+
+#endif
+
diff --git a/device/include/pic16/pic18f87j50.h b/device/include/pic16/pic18f87j50.h
new file mode 100644 (file)
index 0000000..380cc07
--- /dev/null
@@ -0,0 +1,3435 @@
+/*
+ * pic18f87j50.h - device specific declarations
+ *
+ * This file is part of the GNU PIC library for SDCC,
+ * originally devised by Vangelis Rokas <vrokas AT otenet.gr>
+ *
+ * It has been automatically generated by inc2h-pic16.pl,
+ * (c) 2007 by Raphael Neider <rneider AT web.de>
+ */
+
+#ifndef __PIC18F87J50_H__
+#define __PIC18F87J50_H__ 1
+
+
+
+// Configuration Bits
+#define        __CONFIG1L              0x1FFF8
+#define        __CONFIG1H              0x1FFF9
+#define        __CONFIG2L              0x1FFFA
+#define        __CONFIG2H              0x1FFFB
+#define        __CONFIG3L              0x1FFFC
+#define        __CONFIG3H              0x1FFFD
+#define        _DEVID1                 0x3FFFFE
+#define        _DEVID2                 0x3FFFFF
+
+extern __sfr __at (0xF40) PMSTAT;
+
+extern __sfr __at (0xF40) PMSTATL;
+typedef union {
+       struct {
+               unsigned OB0E           : 1;
+               unsigned OB1E           : 1;
+               unsigned OB2E           : 1;
+               unsigned OB3E           : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned OBUF           : 1;
+               unsigned OBE            : 1;
+       };
+} __PMSTATLbits_t;
+extern volatile __PMSTATLbits_t __at (0xF40) PMSTATLbits;
+
+extern __sfr __at (0xF41) PMSTATH;
+typedef union {
+       struct {
+               unsigned IB0F           : 1;
+               unsigned IB1F           : 1;
+               unsigned IB2F           : 1;
+               unsigned IB3F           : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned IBOV           : 1;
+               unsigned IBF            : 1;
+       };
+} __PMSTATHbits_t;
+extern volatile __PMSTATHbits_t __at (0xF41) PMSTATHbits;
+
+extern __sfr __at (0xF42) PMEL;
+typedef union {
+       struct {
+               unsigned PTEN0          : 1;
+               unsigned PTEN1          : 1;
+               unsigned PTEN2          : 1;
+               unsigned PTEN3          : 1;
+               unsigned PTEN4          : 1;
+               unsigned PTEN5          : 1;
+               unsigned PTEN6          : 1;
+               unsigned PTEN7          : 1;
+       };
+} __PMELbits_t;
+extern volatile __PMELbits_t __at (0xF42) PMELbits;
+
+extern __sfr __at (0xF42) PMEN;
+
+extern __sfr __at (0xF43) PMEH;
+typedef union {
+       struct {
+               unsigned PTEN8          : 1;
+               unsigned PTEN9          : 1;
+               unsigned PTEN10         : 1;
+               unsigned PTEN11         : 1;
+               unsigned PTEN12         : 1;
+               unsigned PTEN13         : 1;
+               unsigned PTEN14         : 1;
+               unsigned PTEN15         : 1;
+       };
+} __PMEHbits_t;
+extern volatile __PMEHbits_t __at (0xF43) PMEHbits;
+
+extern __sfr __at (0xF44) PMDIN2;
+
+extern __sfr __at (0xF44) PMDIN2L;
+
+extern __sfr __at (0xF45) PMDIN2H;
+
+extern __sfr __at (0xF46) PMDOUT2;
+
+extern __sfr __at (0xF46) PMDOUT2L;
+
+extern __sfr __at (0xF47) PMDOUT2H;
+
+extern __sfr __at (0xF48) PMMODE;
+
+extern __sfr __at (0xF48) PMMODEL;
+typedef union {
+       struct {
+               unsigned WAITE0         : 1;
+               unsigned WAITE1         : 1;
+               unsigned WAITM0         : 1;
+               unsigned WAITM1         : 1;
+               unsigned WAITM2         : 1;
+               unsigned WAITM3         : 1;
+               unsigned WAITB0         : 1;
+               unsigned WAITB1         : 1;
+       };
+} __PMMODELbits_t;
+extern volatile __PMMODELbits_t __at (0xF48) PMMODELbits;
+
+extern __sfr __at (0xF49) PMMODEH;
+typedef union {
+       struct {
+               unsigned MODE0          : 1;
+               unsigned MODE1          : 1;
+               unsigned MODE16         : 1;
+               unsigned INCM0          : 1;
+               unsigned INCM1          : 1;
+               unsigned IRQM0          : 1;
+               unsigned IRQM1          : 1;
+               unsigned BUSY           : 1;
+       };
+} __PMMODEHbits_t;
+extern volatile __PMMODEHbits_t __at (0xF49) PMMODEHbits;
+
+extern __sfr __at (0xF4A) PMCON;
+
+extern __sfr __at (0xF4A) PMCONL;
+typedef union {
+       struct {
+               unsigned RDSP           : 1;
+               unsigned WRSP           : 1;
+               unsigned BEP            : 1;
+               unsigned CS1P           : 1;
+               unsigned CS2P           : 1;
+               unsigned ALP            : 1;
+               unsigned CSF0           : 1;
+               unsigned CSF1           : 1;
+       };
+} __PMCONLbits_t;
+extern volatile __PMCONLbits_t __at (0xF4A) PMCONLbits;
+
+extern __sfr __at (0xF4B) PMCONH;
+typedef union {
+       struct {
+               unsigned PTRDEN         : 1;
+               unsigned PTWREN         : 1;
+               unsigned PTBEEN         : 1;
+               unsigned ADRMUX0        : 1;
+               unsigned ADRMUX1        : 1;
+               unsigned PSIDL          : 1;
+               unsigned                : 1;
+               unsigned PMPEN          : 1;
+       };
+} __PMCONHbits_t;
+extern volatile __PMCONHbits_t __at (0xF4B) PMCONHbits;
+
+extern __sfr __at (0xF4C) UEP0;
+typedef union {
+       struct {
+               unsigned EPSTALL        : 1;
+               unsigned EPINEN         : 1;
+               unsigned EPOUTEN        : 1;
+               unsigned EPCONDIS       : 1;
+               unsigned EPHSHK         : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+       };
+} __UEP0bits_t;
+extern volatile __UEP0bits_t __at (0xF4C) UEP0bits;
+
+extern __sfr __at (0xF4D) UEP1;
+typedef union {
+       struct {
+               unsigned EPSTALL        : 1;
+               unsigned EPINEN         : 1;
+               unsigned EPOUTEN        : 1;
+               unsigned EPCONDIS       : 1;
+               unsigned EPHSHK         : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+       };
+} __UEP1bits_t;
+extern volatile __UEP1bits_t __at (0xF4D) UEP1bits;
+
+extern __sfr __at (0xF4E) UEP2;
+typedef union {
+       struct {
+               unsigned EPSTALL        : 1;
+               unsigned EPINEN         : 1;
+               unsigned EPOUTEN        : 1;
+               unsigned EPCONDIS       : 1;
+               unsigned EPHSHK         : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+       };
+} __UEP2bits_t;
+extern volatile __UEP2bits_t __at (0xF4E) UEP2bits;
+
+extern __sfr __at (0xF4F) UEP3;
+typedef union {
+       struct {
+               unsigned EPSTALL        : 1;
+               unsigned EPINEN         : 1;
+               unsigned EPOUTEN        : 1;
+               unsigned EPCONDIS       : 1;
+               unsigned EPHSHK         : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+       };
+} __UEP3bits_t;
+extern volatile __UEP3bits_t __at (0xF4F) UEP3bits;
+
+extern __sfr __at (0xF50) UEP4;
+typedef union {
+       struct {
+               unsigned EPSTALL        : 1;
+               unsigned EPINEN         : 1;
+               unsigned EPOUTEN        : 1;
+               unsigned EPCONDIS       : 1;
+               unsigned EPHSHK         : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+       };
+} __UEP4bits_t;
+extern volatile __UEP4bits_t __at (0xF50) UEP4bits;
+
+extern __sfr __at (0xF51) UEP5;
+typedef union {
+       struct {
+               unsigned EPSTALL        : 1;
+               unsigned EPINEN         : 1;
+               unsigned EPOUTEN        : 1;
+               unsigned EPCONDIS       : 1;
+               unsigned EPHSHK         : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+       };
+} __UEP5bits_t;
+extern volatile __UEP5bits_t __at (0xF51) UEP5bits;
+
+extern __sfr __at (0xF52) UEP6;
+typedef union {
+       struct {
+               unsigned EPSTALL        : 1;
+               unsigned EPINEN         : 1;
+               unsigned EPOUTEN        : 1;
+               unsigned EPCONDIS       : 1;
+               unsigned EPHSHK         : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+       };
+} __UEP6bits_t;
+extern volatile __UEP6bits_t __at (0xF52) UEP6bits;
+
+extern __sfr __at (0xF53) UEP7;
+typedef union {
+       struct {
+               unsigned EPSTALL        : 1;
+               unsigned EPINEN         : 1;
+               unsigned EPOUTEN        : 1;
+               unsigned EPCONDIS       : 1;
+               unsigned EPHSHK         : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+       };
+} __UEP7bits_t;
+extern volatile __UEP7bits_t __at (0xF53) UEP7bits;
+
+extern __sfr __at (0xF54) UEP8;
+typedef union {
+       struct {
+               unsigned EPSTALL        : 1;
+               unsigned EPINEN         : 1;
+               unsigned EPOUTEN        : 1;
+               unsigned EPCONDIS       : 1;
+               unsigned EPHSHK         : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+       };
+} __UEP8bits_t;
+extern volatile __UEP8bits_t __at (0xF54) UEP8bits;
+
+extern __sfr __at (0xF55) UEP9;
+typedef union {
+       struct {
+               unsigned EPSTALL        : 1;
+               unsigned EPINEN         : 1;
+               unsigned EPOUTEN        : 1;
+               unsigned EPCONDIS       : 1;
+               unsigned EPHSHK         : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+       };
+} __UEP9bits_t;
+extern volatile __UEP9bits_t __at (0xF55) UEP9bits;
+
+extern __sfr __at (0xF56) UEP10;
+typedef union {
+       struct {
+               unsigned EPSTALL        : 1;
+               unsigned EPINEN         : 1;
+               unsigned EPOUTEN        : 1;
+               unsigned EPCONDIS       : 1;
+               unsigned EPHSHK         : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+       };
+} __UEP10bits_t;
+extern volatile __UEP10bits_t __at (0xF56) UEP10bits;
+
+extern __sfr __at (0xF57) UEP11;
+typedef union {
+       struct {
+               unsigned EPSTALL        : 1;
+               unsigned EPINEN         : 1;
+               unsigned EPOUTEN        : 1;
+               unsigned EPCONDIS       : 1;
+               unsigned EPHSHK         : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+       };
+} __UEP11bits_t;
+extern volatile __UEP11bits_t __at (0xF57) UEP11bits;
+
+extern __sfr __at (0xF58) UEP12;
+typedef union {
+       struct {
+               unsigned EPSTALL        : 1;
+               unsigned EPINEN         : 1;
+               unsigned EPOUTEN        : 1;
+               unsigned EPCONDIS       : 1;
+               unsigned EPHSHK         : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+       };
+} __UEP12bits_t;
+extern volatile __UEP12bits_t __at (0xF58) UEP12bits;
+
+extern __sfr __at (0xF59) UEP13;
+typedef union {
+       struct {
+               unsigned EPSTALL        : 1;
+               unsigned EPINEN         : 1;
+               unsigned EPOUTEN        : 1;
+               unsigned EPCONDIS       : 1;
+               unsigned EPHSHK         : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+       };
+} __UEP13bits_t;
+extern volatile __UEP13bits_t __at (0xF59) UEP13bits;
+
+extern __sfr __at (0xF5A) UEP14;
+typedef union {
+       struct {
+               unsigned EPSTALL        : 1;
+               unsigned EPINEN         : 1;
+               unsigned EPOUTEN        : 1;
+               unsigned EPCONDIS       : 1;
+               unsigned EPHSHK         : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+       };
+} __UEP14bits_t;
+extern volatile __UEP14bits_t __at (0xF5A) UEP14bits;
+
+extern __sfr __at (0xF5B) UEP15;
+typedef union {
+       struct {
+               unsigned EPSTALL        : 1;
+               unsigned EPINEN         : 1;
+               unsigned EPOUTEN        : 1;
+               unsigned EPCONDIS       : 1;
+               unsigned EPHSHK         : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+       };
+} __UEP15bits_t;
+extern volatile __UEP15bits_t __at (0xF5B) UEP15bits;
+
+extern __sfr __at (0xF5C) UIE;
+typedef union {
+       struct {
+               unsigned URSTIE         : 1;
+               unsigned UERRIE         : 1;
+               unsigned ACTVIE         : 1;
+               unsigned TRNIE          : 1;
+               unsigned IDLEIE         : 1;
+               unsigned STALLIE        : 1;
+               unsigned SOFIE          : 1;
+               unsigned                : 1;
+       };
+} __UIEbits_t;
+extern volatile __UIEbits_t __at (0xF5C) UIEbits;
+
+extern __sfr __at (0xF5D) UEIE;
+typedef union {
+       struct {
+               unsigned PIDEE          : 1;
+               unsigned CRC5EE         : 1;
+               unsigned CRC16EE        : 1;
+               unsigned DFN8EE         : 1;
+               unsigned BTOEE          : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned BTSEE          : 1;
+       };
+} __UEIEbits_t;
+extern volatile __UEIEbits_t __at (0xF5D) UEIEbits;
+
+extern __sfr __at (0xF5E) UADDR;
+typedef union {
+       struct {
+               unsigned ADDR0          : 1;
+               unsigned ADDR1          : 1;
+               unsigned ADDR2          : 1;
+               unsigned ADDR3          : 1;
+               unsigned ADDR4          : 1;
+               unsigned ADDR5          : 1;
+               unsigned ADDR6          : 1;
+               unsigned                : 1;
+       };
+} __UADDRbits_t;
+extern volatile __UADDRbits_t __at (0xF5E) UADDRbits;
+
+extern __sfr __at (0xF5F) UCFG;
+typedef union {
+       struct {
+               unsigned PPB0           : 1;
+               unsigned PPB1           : 1;
+               unsigned FSEN           : 1;
+               unsigned UTRDIS         : 1;
+               unsigned UPUEN          : 1;
+               unsigned                : 1;
+               unsigned UOEMON         : 1;
+               unsigned UTEYE          : 1;
+       };
+} __UCFGbits_t;
+extern volatile __UCFGbits_t __at (0xF5F) UCFGbits;
+
+extern __sfr __at (0xF60) UFRM;
+
+extern __sfr __at (0xF60) UFRML;
+typedef union {
+       struct {
+               unsigned FRM0           : 1;
+               unsigned FRM1           : 1;
+               unsigned FRM2           : 1;
+               unsigned FRM3           : 1;
+               unsigned FRM4           : 1;
+               unsigned FRM5           : 1;
+               unsigned FRM6           : 1;
+               unsigned FRM7           : 1;
+       };
+} __UFRMLbits_t;
+extern volatile __UFRMLbits_t __at (0xF60) UFRMLbits;
+
+extern __sfr __at (0xF61) UFRMH;
+typedef union {
+       struct {
+               unsigned FRM8           : 1;
+               unsigned FRM9           : 1;
+               unsigned FRM10          : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+       };
+} __UFRMHbits_t;
+extern volatile __UFRMHbits_t __at (0xF61) UFRMHbits;
+
+extern __sfr __at (0xF62) UIR;
+typedef union {
+       struct {
+               unsigned URSTIF         : 1;
+               unsigned UERRIF         : 1;
+               unsigned ACTVIF         : 1;
+               unsigned TRNIF          : 1;
+               unsigned IDLEIF         : 1;
+               unsigned STALLIF        : 1;
+               unsigned SOFIF          : 1;
+               unsigned                : 1;
+       };
+} __UIRbits_t;
+extern volatile __UIRbits_t __at (0xF62) UIRbits;
+
+extern __sfr __at (0xF63) UEIR;
+typedef union {
+       struct {
+               unsigned PIDEF          : 1;
+               unsigned CRC5EF         : 1;
+               unsigned CRC16EF        : 1;
+               unsigned DFN8EF         : 1;
+               unsigned BTOEF          : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned BTSEF          : 1;
+       };
+} __UEIRbits_t;
+extern volatile __UEIRbits_t __at (0xF63) UEIRbits;
+
+extern __sfr __at (0xF64) USTAT;
+typedef union {
+       struct {
+               unsigned                : 1;
+               unsigned PPBI           : 1;
+               unsigned DIR            : 1;
+               unsigned ENDP0          : 1;
+               unsigned ENDP1          : 1;
+               unsigned ENDP2          : 1;
+               unsigned ENDP3          : 1;
+               unsigned                : 1;
+       };
+} __USTATbits_t;
+extern volatile __USTATbits_t __at (0xF64) USTATbits;
+
+extern __sfr __at (0xF65) UCON;
+typedef union {
+       struct {
+               unsigned                : 1;
+               unsigned SUSPND         : 1;
+               unsigned RESUME         : 1;
+               unsigned USBEN          : 1;
+               unsigned PKTDIS         : 1;
+               unsigned SE0            : 1;
+               unsigned PPBRST         : 1;
+               unsigned                : 1;
+       };
+} __UCONbits_t;
+extern volatile __UCONbits_t __at (0xF65) UCONbits;
+
+extern __sfr __at (0xF66) PMDIN1;
+
+extern __sfr __at (0xF66) PMDIN1L;
+
+extern __sfr __at (0xF67) PMDIN1H;
+
+extern __sfr __at (0xF68) PMADDR;
+
+extern __sfr __at (0xF68) PMADDRL;
+
+extern __sfr __at (0xF68) PMDOUT1;
+
+extern __sfr __at (0xF68) PMDOUT1L;
+
+extern __sfr __at (0xF69) PMADDRH;
+typedef union {
+       struct {
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned CS1            : 1;
+               unsigned CS2            : 1;
+       };
+} __PMADDRHbits_t;
+extern volatile __PMADDRHbits_t __at (0xF69) PMADDRHbits;
+
+extern __sfr __at (0xF69) PMDOUT1H;
+
+extern __sfr __at (0xF6A) CMSTAT;
+typedef union {
+       struct {
+               unsigned COUT1          : 1;
+               unsigned COUT2          : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+       };
+} __CMSTATbits_t;
+extern volatile __CMSTATbits_t __at (0xF6A) CMSTATbits;
+
+extern __sfr __at (0xF6A) CMSTATUS;
+typedef union {
+       struct {
+               unsigned COUT1          : 1;
+               unsigned COUT2          : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+       };
+} __CMSTATUSbits_t;
+extern volatile __CMSTATUSbits_t __at (0xF6A) CMSTATUSbits;
+
+extern __sfr __at (0xF6B) SSP2CON2;
+typedef union {
+       struct {
+               unsigned SEN            : 1;
+               unsigned RSEN           : 1;
+               unsigned PEN            : 1;
+               unsigned RCEN           : 1;
+               unsigned ACKEN          : 1;
+               unsigned ACKDT          : 1;
+               unsigned ACKSTAT        : 1;
+               unsigned GCEN           : 1;
+       };
+       struct {
+               unsigned                : 1;
+               unsigned ADMSK1         : 1;
+               unsigned ADMSK2         : 1;
+               unsigned ADMSK3         : 1;
+               unsigned ADMSK4         : 1;
+               unsigned ADMSK5         : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+       };
+} __SSP2CON2bits_t;
+extern volatile __SSP2CON2bits_t __at (0xF6B) SSP2CON2bits;
+
+extern __sfr __at (0xF6C) SSP2CON1;
+typedef union {
+       struct {
+               unsigned SSPM0          : 1;
+               unsigned SSPM1          : 1;
+               unsigned SSPM2          : 1;
+               unsigned SSPM3          : 1;
+               unsigned CKP            : 1;
+               unsigned SSPEN          : 1;
+               unsigned SSPOV          : 1;
+               unsigned WCOL           : 1;
+       };
+} __SSP2CON1bits_t;
+extern volatile __SSP2CON1bits_t __at (0xF6C) SSP2CON1bits;
+
+extern __sfr __at (0xF6D) SSP2STAT;
+typedef union {
+       struct {
+               unsigned BF             : 1;
+               unsigned UA             : 1;
+               unsigned R_W            : 1;
+               unsigned S              : 1;
+               unsigned P              : 1;
+               unsigned D_A            : 1;
+               unsigned CKE            : 1;
+               unsigned SMP            : 1;
+       };
+       struct {
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned I2C_READ       : 1;
+               unsigned I2C_START      : 1;
+               unsigned I2C_STOP       : 1;
+               unsigned I2C_DAT        : 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 R              : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned D              : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+       };
+} __SSP2STATbits_t;
+extern volatile __SSP2STATbits_t __at (0xF6D) SSP2STATbits;
+
+extern __sfr __at (0xF6E) SSP2ADD;
+
+extern __sfr __at (0xF6E) SSP2MSK;
+typedef union {
+       struct {
+               unsigned MSK0           : 1;
+               unsigned MSK1           : 1;
+               unsigned MSK2           : 1;
+               unsigned MSK3           : 1;
+               unsigned MSK4           : 1;
+               unsigned MSK5           : 1;
+               unsigned MSK6           : 1;
+               unsigned MSK7           : 1;
+       };
+} __SSP2MSKbits_t;
+extern volatile __SSP2MSKbits_t __at (0xF6E) SSP2MSKbits;
+
+extern __sfr __at (0xF6F) SSP2BUF;
+
+extern __sfr __at (0xF70) CCP5CON;
+typedef union {
+       struct {
+               unsigned CCP5M0         : 1;
+               unsigned CCP5M1         : 1;
+               unsigned CCP5M2         : 1;
+               unsigned CCP5M3         : 1;
+               unsigned DCCP5Y         : 1;
+               unsigned DCCP5X         : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+       };
+       struct {
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned DC5B0          : 1;
+               unsigned DC5B1          : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+       };
+} __CCP5CONbits_t;
+extern volatile __CCP5CONbits_t __at (0xF70) CCP5CONbits;
+
+extern __sfr __at (0xF71) CCPR5;
+
+extern __sfr __at (0xF71) CCPR5L;
+
+extern __sfr __at (0xF72) CCPR5H;
+
+extern __sfr __at (0xF73) CCP4CON;
+typedef union {
+       struct {
+               unsigned CCP4M0         : 1;
+               unsigned CCP4M1         : 1;
+               unsigned CCP4M2         : 1;
+               unsigned CCP4M3         : 1;
+               unsigned DCCP4Y         : 1;
+               unsigned DCCP4X         : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+       };
+       struct {
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned DC4B0          : 1;
+               unsigned DC4B1          : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+       };
+} __CCP4CONbits_t;
+extern volatile __CCP4CONbits_t __at (0xF73) CCP4CONbits;
+
+extern __sfr __at (0xF74) CCPR4;
+
+extern __sfr __at (0xF74) CCPR4L;
+
+extern __sfr __at (0xF75) CCPR4H;
+
+extern __sfr __at (0xF76) T4CON;
+typedef union {
+       struct {
+               unsigned T4CKPS0        : 1;
+               unsigned T4CKPS1        : 1;
+               unsigned TMR4ON         : 1;
+               unsigned T4OUTPS0       : 1;
+               unsigned T4OUTPS1       : 1;
+               unsigned T4OUTPS2       : 1;
+               unsigned T4OUTPS3       : 1;
+               unsigned                : 1;
+       };
+} __T4CONbits_t;
+extern volatile __T4CONbits_t __at (0xF76) T4CONbits;
+
+extern __sfr __at (0xF77) CVRCON;
+typedef union {
+       struct {
+               unsigned CVR0           : 1;
+               unsigned CVR1           : 1;
+               unsigned CVR2           : 1;
+               unsigned CVR3           : 1;
+               unsigned CVRSS          : 1;
+               unsigned CVRR           : 1;
+               unsigned CVROE          : 1;
+               unsigned CVREN          : 1;
+       };
+} __CVRCONbits_t;
+extern volatile __CVRCONbits_t __at (0xF77) CVRCONbits;
+
+extern __sfr __at (0xF77) PR4;
+
+extern __sfr __at (0xF78) TMR4;
+
+extern __sfr __at (0xF79) T3CON;
+typedef union {
+       struct {
+               unsigned TMR3ON         : 1;
+               unsigned TMR3CS         : 1;
+               unsigned T3SYNC         : 1;
+               unsigned T3CCP1         : 1;
+               unsigned T3CKPS0        : 1;
+               unsigned T3CKPS1        : 1;
+               unsigned T3CCP2         : 1;
+               unsigned RD16           : 1;
+       };
+       struct {
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned T3INSYNC       : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+       };
+       struct {
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned NOT_T3SYNC     : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+       };
+} __T3CONbits_t;
+extern volatile __T3CONbits_t __at (0xF79) T3CONbits;
+
+extern __sfr __at (0xF7A) TMR3L;
+
+extern __sfr __at (0xF7B) TMR3H;
+
+extern __sfr __at (0xF7C) BAUDCON2;
+typedef union {
+       struct {
+               unsigned ABDEN          : 1;
+               unsigned WUE            : 1;
+               unsigned                : 1;
+               unsigned BRG16          : 1;
+               unsigned SCKP           : 1;
+               unsigned DTRXP          : 1;
+               unsigned RCMT           : 1;
+               unsigned ABDOVF         : 1;
+       };
+       struct {
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned TXCKP          : 1;
+               unsigned RXDTP          : 1;
+               unsigned RCIDL          : 1;
+               unsigned                : 1;
+       };
+} __BAUDCON2bits_t;
+extern volatile __BAUDCON2bits_t __at (0xF7C) BAUDCON2bits;
+
+extern __sfr __at (0xF7D) SPBRGH2;
+
+extern __sfr __at (0xF7E) BAUDCON;
+typedef union {
+       struct {
+               unsigned ABDEN          : 1;
+               unsigned WUE            : 1;
+               unsigned                : 1;
+               unsigned BRG16          : 1;
+               unsigned SCKP           : 1;
+               unsigned DTRXP          : 1;
+               unsigned RCMT           : 1;
+               unsigned ABDOVF         : 1;
+       };
+       struct {
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned TXCKP          : 1;
+               unsigned RXDTP          : 1;
+               unsigned RCIDL          : 1;
+               unsigned                : 1;
+       };
+} __BAUDCONbits_t;
+extern volatile __BAUDCONbits_t __at (0xF7E) BAUDCONbits;
+
+extern __sfr __at (0xF7E) BAUDCON1;
+typedef union {
+       struct {
+               unsigned ABDEN          : 1;
+               unsigned WUE            : 1;
+               unsigned                : 1;
+               unsigned BRG16          : 1;
+               unsigned SCKP           : 1;
+               unsigned DTRXP          : 1;
+               unsigned RCMT           : 1;
+               unsigned ABDOVF         : 1;
+       };
+       struct {
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned TXCKP          : 1;
+               unsigned RXDTP          : 1;
+               unsigned RCIDL          : 1;
+               unsigned                : 1;
+       };
+} __BAUDCON1bits_t;
+extern volatile __BAUDCON1bits_t __at (0xF7E) BAUDCON1bits;
+
+extern __sfr __at (0xF7F) SPBRGH;
+
+extern __sfr __at (0xF7F) SPBRGH1;
+
+extern __sfr __at (0xF80) PORTA;
+typedef union {
+       struct {
+               unsigned RA0            : 1;
+               unsigned RA1            : 1;
+               unsigned RA2            : 1;
+               unsigned RA3            : 1;
+               unsigned RA4            : 1;
+               unsigned RA5            : 1;
+               unsigned RA6            : 1;
+               unsigned RA7            : 1;
+       };
+       struct {
+               unsigned AN0            : 1;
+               unsigned AN1            : 1;
+               unsigned AN2            : 1;
+               unsigned AN3            : 1;
+               unsigned T0CKI          : 1;
+               unsigned AN4            : 1;
+               unsigned OSC2           : 1;
+               unsigned                : 1;
+       };
+       struct {
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned VREFM          : 1;
+               unsigned VREFP          : 1;
+               unsigned PMD5_PORTA     : 1;
+               unsigned C2INA          : 1;
+               unsigned CLKO           : 1;
+               unsigned                : 1;
+       };
+       struct {
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned PMD4_PORTA     : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+       };
+} __PORTAbits_t;
+extern volatile __PORTAbits_t __at (0xF80) PORTAbits;
+
+extern __sfr __at (0xF81) PORTB;
+typedef union {
+       struct {
+               unsigned RB0            : 1;
+               unsigned RB1            : 1;
+               unsigned RB2            : 1;
+               unsigned RB3            : 1;
+               unsigned RB4            : 1;
+               unsigned RB5            : 1;
+               unsigned RB6            : 1;
+               unsigned RB7            : 1;
+       };
+       struct {
+               unsigned INT0           : 1;
+               unsigned INT1           : 1;
+               unsigned INT2           : 1;
+               unsigned INT3           : 1;
+               unsigned KBI0           : 1;
+               unsigned KBI1           : 1;
+               unsigned KBI2           : 1;
+               unsigned KBI3           : 1;
+       };
+       struct {
+               unsigned FLT0           : 1;
+               unsigned PMA4           : 1;
+               unsigned PMA3           : 1;
+               unsigned PMA2           : 1;
+               unsigned PMA1           : 1;
+               unsigned PMA0           : 1;
+               unsigned PGC            : 1;
+               unsigned PGD            : 1;
+       };
+       struct {
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned CCP2_PORTB     : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+       };
+} __PORTBbits_t;
+extern volatile __PORTBbits_t __at (0xF81) PORTBbits;
+
+extern __sfr __at (0xF82) PORTC;
+typedef union {
+       struct {
+               unsigned RC0            : 1;
+               unsigned RC1            : 1;
+               unsigned RC2            : 1;
+               unsigned RC3            : 1;
+               unsigned RC4            : 1;
+               unsigned RC5            : 1;
+               unsigned RC6            : 1;
+               unsigned RC7            : 1;
+       };
+       struct {
+               unsigned T1OSO          : 1;
+               unsigned T1OSI          : 1;
+               unsigned CCP1           : 1;
+               unsigned SCK            : 1;
+               unsigned SDI            : 1;
+               unsigned SDO            : 1;
+               unsigned TX             : 1;
+               unsigned RX             : 1;
+       };
+       struct {
+               unsigned T13CKI         : 1;
+               unsigned CCP2_PORTC     : 1;
+               unsigned                : 1;
+               unsigned SCL            : 1;
+               unsigned SDA            : 1;
+               unsigned C2OUT          : 1;
+               unsigned CK             : 1;
+               unsigned DT             : 1;
+       };
+} __PORTCbits_t;
+extern volatile __PORTCbits_t __at (0xF82) PORTCbits;
+
+extern __sfr __at (0xF83) PORTD;
+typedef union {
+       struct {
+               unsigned RD0            : 1;
+               unsigned RD1            : 1;
+               unsigned RD2            : 1;
+               unsigned RD3            : 1;
+               unsigned RD4            : 1;
+               unsigned RD5            : 1;
+               unsigned RD6            : 1;
+               unsigned RD7            : 1;
+       };
+       struct {
+               unsigned PMD0_PORTD     : 1;
+               unsigned PMD1_PORTD     : 1;
+               unsigned PMD2_PORTD     : 1;
+               unsigned PMD3_PORTD     : 1;
+               unsigned PMD4_PORTD     : 1;
+               unsigned PMD5_PORTD     : 1;
+               unsigned PMD6_PORTD     : 1;
+               unsigned PMD7_PORTD     : 1;
+       };
+       struct {
+               unsigned AD0            : 1;
+               unsigned AD1            : 1;
+               unsigned AD2            : 1;
+               unsigned AD3            : 1;
+               unsigned AD4            : 1;
+               unsigned AD5            : 1;
+               unsigned AD6            : 1;
+               unsigned AD7            : 1;
+       };
+       struct {
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned SDO2           : 1;
+               unsigned SDA2           : 1;
+               unsigned SCL2           : 1;
+               unsigned SS2            : 1;
+       };
+       struct {
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned SDI2           : 1;
+               unsigned SCK2           : 1;
+               unsigned                : 1;
+       };
+} __PORTDbits_t;
+extern volatile __PORTDbits_t __at (0xF83) PORTDbits;
+
+extern __sfr __at (0xF84) PORTE;
+typedef union {
+       struct {
+               unsigned RE0            : 1;
+               unsigned RE1            : 1;
+               unsigned RE2            : 1;
+               unsigned RE3            : 1;
+               unsigned RE4            : 1;
+               unsigned RE5            : 1;
+               unsigned RE6            : 1;
+               unsigned RE7            : 1;
+       };
+       struct {
+               unsigned AD8            : 1;
+               unsigned AD9            : 1;
+               unsigned AD10           : 1;
+               unsigned AD11           : 1;
+               unsigned AD12           : 1;
+               unsigned AD13           : 1;
+               unsigned AD14           : 1;
+               unsigned AD15           : 1;
+       };
+       struct {
+               unsigned PMRD_PORTE     : 1;
+               unsigned PMWR_PORTE     : 1;
+               unsigned PMBE_PORTE     : 1;
+               unsigned PMA13          : 1;
+               unsigned PMA12          : 1;
+               unsigned PMA11          : 1;
+               unsigned PMA10          : 1;
+               unsigned PMA9           : 1;
+       };
+       struct {
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned REFO           : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned CCP2_PORTE     : 1;
+       };
+} __PORTEbits_t;
+extern volatile __PORTEbits_t __at (0xF84) PORTEbits;
+
+extern __sfr __at (0xF85) PORTF;
+typedef union {
+       struct {
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned RF2            : 1;
+               unsigned RF3            : 1;
+               unsigned RF4            : 1;
+               unsigned RF5            : 1;
+               unsigned RF6            : 1;
+               unsigned RF7            : 1;
+       };
+       struct {
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned AN7            : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned AN10           : 1;
+               unsigned AN11           : 1;
+               unsigned SS             : 1;
+       };
+       struct {
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned C2INB          : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned CVREF          : 1;
+               unsigned C1INA          : 1;
+               unsigned C1OUT          : 1;
+       };
+       struct {
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned PMA5           : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned C1INB          : 1;
+               unsigned PMD1_PORTF     : 1;
+               unsigned PMD0_PORTF     : 1;
+       };
+       struct {
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned PMD2_PORTF     : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+       };
+} __PORTFbits_t;
+extern volatile __PORTFbits_t __at (0xF85) PORTFbits;
+
+extern __sfr __at (0xF86) PORTG;
+typedef union {
+       struct {
+               unsigned RG0            : 1;
+               unsigned RG1            : 1;
+               unsigned RG2            : 1;
+               unsigned RG3            : 1;
+               unsigned RG4            : 1;
+               unsigned RJPU           : 1;
+               unsigned REPU           : 1;
+               unsigned RDPU           : 1;
+       };
+       struct {
+               unsigned CCP3           : 1;
+               unsigned TX2            : 1;
+               unsigned RX2            : 1;
+               unsigned CCP4           : 1;
+               unsigned CCP5           : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+       };
+       struct {
+               unsigned PMA8           : 1;
+               unsigned CK2            : 1;
+               unsigned DT2            : 1;
+               unsigned PMCS1          : 1;
+               unsigned PMCS2          : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+       };
+       struct {
+               unsigned                : 1;
+               unsigned PMA7           : 1;
+               unsigned PMA6           : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+       };
+} __PORTGbits_t;
+extern volatile __PORTGbits_t __at (0xF86) PORTGbits;
+
+extern __sfr __at (0xF87) PORTH;
+typedef union {
+       struct {
+               unsigned RH0            : 1;
+               unsigned RH1            : 1;
+               unsigned RH2            : 1;
+               unsigned RH3            : 1;
+               unsigned RH4            : 1;
+               unsigned RH5            : 1;
+               unsigned RH6            : 1;
+               unsigned RH7            : 1;
+       };
+       struct {
+               unsigned A16            : 1;
+               unsigned A17            : 1;
+               unsigned A18            : 1;
+               unsigned A19            : 1;
+               unsigned AN12           : 1;
+               unsigned AN13           : 1;
+               unsigned AN14           : 1;
+               unsigned AN15           : 1;
+       };
+       struct {
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned PMD7_PORTH     : 1;
+               unsigned PMD6_PORTH     : 1;
+               unsigned PMD3_PORTH     : 1;
+               unsigned PMBE_PORTH     : 1;
+               unsigned PMRD_PORTH     : 1;
+               unsigned PMWR_PORTH     : 1;
+       };
+       struct {
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned C2INC          : 1;
+               unsigned C2IND          : 1;
+               unsigned C1INC          : 1;
+               unsigned P1B            : 1;
+       };
+} __PORTHbits_t;
+extern volatile __PORTHbits_t __at (0xF87) PORTHbits;
+
+extern __sfr __at (0xF88) PORTJ;
+typedef union {
+       struct {
+               unsigned RJ0            : 1;
+               unsigned RJ1            : 1;
+               unsigned RJ2            : 1;
+               unsigned RJ3            : 1;
+               unsigned RJ4            : 1;
+               unsigned RJ5            : 1;
+               unsigned RJ6            : 1;
+               unsigned RJ7            : 1;
+       };
+       struct {
+               unsigned ALE            : 1;
+               unsigned OE             : 1;
+               unsigned WRL            : 1;
+               unsigned WRH            : 1;
+               unsigned BA0            : 1;
+               unsigned CE             : 1;
+               unsigned LB             : 1;
+               unsigned UB             : 1;
+       };
+} __PORTJbits_t;
+extern volatile __PORTJbits_t __at (0xF88) PORTJbits;
+
+extern __sfr __at (0xF89) LATA;
+typedef union {
+       struct {
+               unsigned LATA0          : 1;
+               unsigned LATA1          : 1;
+               unsigned LATA2          : 1;
+               unsigned LATA3          : 1;
+               unsigned LATA4          : 1;
+               unsigned LATA5          : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+       };
+} __LATAbits_t;
+extern volatile __LATAbits_t __at (0xF89) LATAbits;
+
+extern __sfr __at (0xF8A) LATB;
+typedef union {
+       struct {
+               unsigned LATB0          : 1;
+               unsigned LATB1          : 1;
+               unsigned LATB2          : 1;
+               unsigned LATB3          : 1;
+               unsigned LATB4          : 1;
+               unsigned LATB5          : 1;
+               unsigned LATB6          : 1;
+               unsigned LATB7          : 1;
+       };
+} __LATBbits_t;
+extern volatile __LATBbits_t __at (0xF8A) LATBbits;
+
+extern __sfr __at (0xF8B) LATC;
+typedef union {
+       struct {
+               unsigned LATC0          : 1;
+               unsigned LATC1          : 1;
+               unsigned LATC2          : 1;
+               unsigned LATC3          : 1;
+               unsigned LATC4          : 1;
+               unsigned LATC5          : 1;
+               unsigned LATC6          : 1;
+               unsigned LATC7          : 1;
+       };
+} __LATCbits_t;
+extern volatile __LATCbits_t __at (0xF8B) LATCbits;
+
+extern __sfr __at (0xF8C) LATD;
+typedef union {
+       struct {
+               unsigned LATD0          : 1;
+               unsigned LATD1          : 1;
+               unsigned LATD2          : 1;
+               unsigned LATD3          : 1;
+               unsigned LATD4          : 1;
+               unsigned LATD5          : 1;
+               unsigned LATD6          : 1;
+               unsigned LATD7          : 1;
+       };
+} __LATDbits_t;
+extern volatile __LATDbits_t __at (0xF8C) LATDbits;
+
+extern __sfr __at (0xF8D) LATE;
+typedef union {
+       struct {
+               unsigned LATE0          : 1;
+               unsigned LATE1          : 1;
+               unsigned LATE2          : 1;
+               unsigned LATE3          : 1;
+               unsigned LATE4          : 1;
+               unsigned LATE5          : 1;
+               unsigned LATE6          : 1;
+               unsigned LATE7          : 1;
+       };
+} __LATEbits_t;
+extern volatile __LATEbits_t __at (0xF8D) LATEbits;
+
+extern __sfr __at (0xF8E) LATF;
+typedef union {
+       struct {
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned LATF2          : 1;
+               unsigned LATF3          : 1;
+               unsigned LATF4          : 1;
+               unsigned LATF5          : 1;
+               unsigned LATF6          : 1;
+               unsigned LATF7          : 1;
+       };
+} __LATFbits_t;
+extern volatile __LATFbits_t __at (0xF8E) LATFbits;
+
+extern __sfr __at (0xF8F) LATG;
+typedef union {
+       struct {
+               unsigned LATG0          : 1;
+               unsigned LATG1          : 1;
+               unsigned LATG2          : 1;
+               unsigned LATG3          : 1;
+               unsigned LATG4          : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+       };
+} __LATGbits_t;
+extern volatile __LATGbits_t __at (0xF8F) LATGbits;
+
+extern __sfr __at (0xF90) LATH;
+typedef union {
+       struct {
+               unsigned LATH0          : 1;
+               unsigned LATH1          : 1;
+               unsigned LATH2          : 1;
+               unsigned LATH3          : 1;
+               unsigned LATH4          : 1;
+               unsigned LATH5          : 1;
+               unsigned LATH6          : 1;
+               unsigned LATH7          : 1;
+       };
+} __LATHbits_t;
+extern volatile __LATHbits_t __at (0xF90) LATHbits;
+
+extern __sfr __at (0xF91) LATJ;
+typedef union {
+       struct {
+               unsigned LATJ0          : 1;
+               unsigned LATJ1          : 1;
+               unsigned LATJ2          : 1;
+               unsigned LATJ3          : 1;
+               unsigned LATJ4          : 1;
+               unsigned LATJ5          : 1;
+               unsigned LATJ6          : 1;
+               unsigned LATJ7          : 1;
+       };
+} __LATJbits_t;
+extern volatile __LATJbits_t __at (0xF91) LATJbits;
+
+extern __sfr __at (0xF92) DDRA;
+typedef union {
+       struct {
+               unsigned RA0            : 1;
+               unsigned RA1            : 1;
+               unsigned RA2            : 1;
+               unsigned RA3            : 1;
+               unsigned RA4            : 1;
+               unsigned RA5            : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+       };
+} __DDRAbits_t;
+extern volatile __DDRAbits_t __at (0xF92) DDRAbits;
+
+extern __sfr __at (0xF92) TRISA;
+typedef union {
+       struct {
+               unsigned TRISA0         : 1;
+               unsigned TRISA1         : 1;
+               unsigned TRISA2         : 1;
+               unsigned TRISA3         : 1;
+               unsigned TRISA4         : 1;
+               unsigned TRISA5         : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+       };
+} __TRISAbits_t;
+extern volatile __TRISAbits_t __at (0xF92) TRISAbits;
+
+extern __sfr __at (0xF93) DDRB;
+typedef union {
+       struct {
+               unsigned RB0            : 1;
+               unsigned RB1            : 1;
+               unsigned RB2            : 1;
+               unsigned RB3            : 1;
+               unsigned RB4            : 1;
+               unsigned RB5            : 1;
+               unsigned RB6            : 1;
+               unsigned RB7            : 1;
+       };
+} __DDRBbits_t;
+extern volatile __DDRBbits_t __at (0xF93) DDRBbits;
+
+extern __sfr __at (0xF93) TRISB;
+typedef union {
+       struct {
+               unsigned TRISB0         : 1;
+               unsigned TRISB1         : 1;
+               unsigned TRISB2         : 1;
+               unsigned TRISB3         : 1;
+               unsigned TRISB4         : 1;
+               unsigned TRISB5         : 1;
+               unsigned TRISB6         : 1;
+               unsigned TRISB7         : 1;
+       };
+} __TRISBbits_t;
+extern volatile __TRISBbits_t __at (0xF93) TRISBbits;
+
+extern __sfr __at (0xF94) DDRC;
+typedef union {
+       struct {
+               unsigned RC0            : 1;
+               unsigned RC1            : 1;
+               unsigned RC2            : 1;
+               unsigned RC3            : 1;
+               unsigned RC4            : 1;
+               unsigned RC5            : 1;
+               unsigned RC6            : 1;
+               unsigned RC7            : 1;
+       };
+} __DDRCbits_t;
+extern volatile __DDRCbits_t __at (0xF94) DDRCbits;
+
+extern __sfr __at (0xF94) TRISC;
+typedef union {
+       struct {
+               unsigned TRISC0         : 1;
+               unsigned TRISC1         : 1;
+               unsigned TRISC2         : 1;
+               unsigned TRISC3         : 1;
+               unsigned TRISC4         : 1;
+               unsigned TRISC5         : 1;
+               unsigned TRISC6         : 1;
+               unsigned TRISC7         : 1;
+       };
+} __TRISCbits_t;
+extern volatile __TRISCbits_t __at (0xF94) TRISCbits;
+
+extern __sfr __at (0xF95) DDRD;
+typedef union {
+       struct {
+               unsigned RD0            : 1;
+               unsigned RD1            : 1;
+               unsigned RD2            : 1;
+               unsigned RD3            : 1;
+               unsigned RD4            : 1;
+               unsigned RD5            : 1;
+               unsigned RD6            : 1;
+               unsigned RD7            : 1;
+       };
+} __DDRDbits_t;
+extern volatile __DDRDbits_t __at (0xF95) DDRDbits;
+
+extern __sfr __at (0xF95) TRISD;
+typedef union {
+       struct {
+               unsigned TRISD0         : 1;
+               unsigned TRISD1         : 1;
+               unsigned TRISD2         : 1;
+               unsigned TRISD3         : 1;
+               unsigned TRISD4         : 1;
+               unsigned TRISD5         : 1;
+               unsigned TRISD6         : 1;
+               unsigned TRISD7         : 1;
+       };
+} __TRISDbits_t;
+extern volatile __TRISDbits_t __at (0xF95) TRISDbits;
+
+extern __sfr __at (0xF96) DDRE;
+typedef union {
+       struct {
+               unsigned RE0            : 1;
+               unsigned RE1            : 1;
+               unsigned RE2            : 1;
+               unsigned RE3            : 1;
+               unsigned RE4            : 1;
+               unsigned RE5            : 1;
+               unsigned RE6            : 1;
+               unsigned RE7            : 1;
+       };
+} __DDREbits_t;
+extern volatile __DDREbits_t __at (0xF96) DDREbits;
+
+extern __sfr __at (0xF96) TRISE;
+typedef union {
+       struct {
+               unsigned TRISE0         : 1;
+               unsigned TRISE1         : 1;
+               unsigned TRISE2         : 1;
+               unsigned TRISE3         : 1;
+               unsigned TRISE4         : 1;
+               unsigned TRISE5         : 1;
+               unsigned TRISE6         : 1;
+               unsigned TRISE7         : 1;
+       };
+} __TRISEbits_t;
+extern volatile __TRISEbits_t __at (0xF96) TRISEbits;
+
+extern __sfr __at (0xF97) DDRF;
+typedef union {
+       struct {
+               unsigned                : 1;
+               unsigned RF1            : 1;
+               unsigned RF2            : 1;
+               unsigned RF3            : 1;
+               unsigned RF4            : 1;
+               unsigned RF5            : 1;
+               unsigned RF6            : 1;
+               unsigned RF7            : 1;
+       };
+} __DDRFbits_t;
+extern volatile __DDRFbits_t __at (0xF97) DDRFbits;
+
+extern __sfr __at (0xF97) TRISF;
+typedef union {
+       struct {
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned TRISF2         : 1;
+               unsigned TRISF3         : 1;
+               unsigned TRISF4         : 1;
+               unsigned TRISF5         : 1;
+               unsigned TRISF6         : 1;
+               unsigned TRISF7         : 1;
+       };
+} __TRISFbits_t;
+extern volatile __TRISFbits_t __at (0xF97) TRISFbits;
+
+extern __sfr __at (0xF98) DDRG;
+typedef union {
+       struct {
+               unsigned RG0            : 1;
+               unsigned RG1            : 1;
+               unsigned RG2            : 1;
+               unsigned RG3            : 1;
+               unsigned RG4            : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+       };
+} __DDRGbits_t;
+extern volatile __DDRGbits_t __at (0xF98) DDRGbits;
+
+extern __sfr __at (0xF98) TRISG;
+typedef union {
+       struct {
+               unsigned TRISG0         : 1;
+               unsigned TRISG1         : 1;
+               unsigned TRISG2         : 1;
+               unsigned TRISG3         : 1;
+               unsigned TRISG4         : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+       };
+} __TRISGbits_t;
+extern volatile __TRISGbits_t __at (0xF98) TRISGbits;
+
+extern __sfr __at (0xF99) DDRH;
+typedef union {
+       struct {
+               unsigned RH0            : 1;
+               unsigned RH1            : 1;
+               unsigned RH2            : 1;
+               unsigned RH3            : 1;
+               unsigned RH4            : 1;
+               unsigned RH5            : 1;
+               unsigned RH6            : 1;
+               unsigned RH7            : 1;
+       };
+} __DDRHbits_t;
+extern volatile __DDRHbits_t __at (0xF99) DDRHbits;
+
+extern __sfr __at (0xF99) TRISH;
+typedef union {
+       struct {
+               unsigned TRISH0         : 1;
+               unsigned TRISH1         : 1;
+               unsigned TRISH2         : 1;
+               unsigned TRISH3         : 1;
+               unsigned TRISH4         : 1;
+               unsigned TRISH5         : 1;
+               unsigned TRISH6         : 1;
+               unsigned TRISH7         : 1;
+       };
+} __TRISHbits_t;
+extern volatile __TRISHbits_t __at (0xF99) TRISHbits;
+
+extern __sfr __at (0xF9A) DDRJ;
+typedef union {
+       struct {
+               unsigned RJ0            : 1;
+               unsigned RJ1            : 1;
+               unsigned RJ2            : 1;
+               unsigned RJ3            : 1;
+               unsigned RJ4            : 1;
+               unsigned RJ5            : 1;
+               unsigned RJ6            : 1;
+               unsigned RJ7            : 1;
+       };
+} __DDRJbits_t;
+extern volatile __DDRJbits_t __at (0xF9A) DDRJbits;
+
+extern __sfr __at (0xF9A) TRISJ;
+typedef union {
+       struct {
+               unsigned TRISJ0         : 1;
+               unsigned TRISJ1         : 1;
+               unsigned TRISJ2         : 1;
+               unsigned TRISJ3         : 1;
+               unsigned TRISJ4         : 1;
+               unsigned TRISJ5         : 1;
+               unsigned TRISJ6         : 1;
+               unsigned TRISJ7         : 1;
+       };
+} __TRISJbits_t;
+extern volatile __TRISJbits_t __at (0xF9A) TRISJbits;
+
+extern __sfr __at (0xF9B) OSCTUNE;
+typedef union {
+       struct {
+               unsigned TUN0           : 1;
+               unsigned TUN1           : 1;
+               unsigned TUN2           : 1;
+               unsigned TUN3           : 1;
+               unsigned TUN4           : 1;
+               unsigned TUN5           : 1;
+               unsigned PLLEN          : 1;
+               unsigned INTSRC         : 1;
+       };
+} __OSCTUNEbits_t;
+extern volatile __OSCTUNEbits_t __at (0xF9B) OSCTUNEbits;
+
+extern __sfr __at (0xF9C) RCSTA2;
+typedef union {
+       struct {
+               unsigned RCD8           : 1;
+               unsigned OERR           : 1;
+               unsigned FERR           : 1;
+               unsigned ADDEN          : 1;
+               unsigned CREN           : 1;
+               unsigned SREN           : 1;
+               unsigned RC9            : 1;
+               unsigned SPEN           : 1;
+       };
+       struct {
+               unsigned RX9D           : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 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 RX9            : 1;
+               unsigned                : 1;
+       };
+} __RCSTA2bits_t;
+extern volatile __RCSTA2bits_t __at (0xF9C) RCSTA2bits;
+
+extern __sfr __at (0xF9D) PIE1;
+typedef union {
+       struct {
+               unsigned TMR1IE         : 1;
+               unsigned TMR2IE         : 1;
+               unsigned CCP1IE         : 1;
+               unsigned SSPIE          : 1;
+               unsigned TXIE           : 1;
+               unsigned RCIE           : 1;
+               unsigned ADIE           : 1;
+               unsigned PMPIE          : 1;
+       };
+       struct {
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned SSP1IE         : 1;
+               unsigned TX1IE          : 1;
+               unsigned RC1IE          : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+       };
+} __PIE1bits_t;
+extern volatile __PIE1bits_t __at (0xF9D) PIE1bits;
+
+extern __sfr __at (0xF9E) PIR1;
+typedef union {
+       struct {
+               unsigned TMR1IF         : 1;
+               unsigned TMR2IF         : 1;
+               unsigned CCP1IF         : 1;
+               unsigned SSPIF          : 1;
+               unsigned TXIF           : 1;
+               unsigned RCIF           : 1;
+               unsigned ADIF           : 1;
+               unsigned PMPIF          : 1;
+       };
+       struct {
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned SSP1IF         : 1;
+               unsigned TX1IF          : 1;
+               unsigned RC1IF          : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+       };
+} __PIR1bits_t;
+extern volatile __PIR1bits_t __at (0xF9E) PIR1bits;
+
+extern __sfr __at (0xF9F) IPR1;
+typedef union {
+       struct {
+               unsigned TMR1IP         : 1;
+               unsigned TMR2IP         : 1;
+               unsigned CCP1IP         : 1;
+               unsigned SSPIP          : 1;
+               unsigned TXIP           : 1;
+               unsigned RCIP           : 1;
+               unsigned ADIP           : 1;
+               unsigned PMPIP          : 1;
+       };
+       struct {
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned SSP1IP         : 1;
+               unsigned TX1IP          : 1;
+               unsigned RC1IP          : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+       };
+} __IPR1bits_t;
+extern volatile __IPR1bits_t __at (0xF9F) IPR1bits;
+
+extern __sfr __at (0xFA0) PIE2;
+typedef union {
+       struct {
+               unsigned CCP2IE         : 1;
+               unsigned TMR3IE         : 1;
+               unsigned LVDIE          : 1;
+               unsigned BCLIE          : 1;
+               unsigned USBIE          : 1;
+               unsigned CM1IE          : 1;
+               unsigned CM2IE          : 1;
+               unsigned OSCFIE         : 1;
+       };
+       struct {
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned BCL1IE         : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+       };
+} __PIE2bits_t;
+extern volatile __PIE2bits_t __at (0xFA0) PIE2bits;
+
+extern __sfr __at (0xFA1) PIR2;
+typedef union {
+       struct {
+               unsigned CCP2IF         : 1;
+               unsigned TMR3IF         : 1;
+               unsigned LVDIF          : 1;
+               unsigned BCLIF          : 1;
+               unsigned USBIF          : 1;
+               unsigned CM1IF          : 1;
+               unsigned CM2IF          : 1;
+               unsigned OSCFIF         : 1;
+       };
+       struct {
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned BCL1IF         : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+       };
+} __PIR2bits_t;
+extern volatile __PIR2bits_t __at (0xFA1) PIR2bits;
+
+extern __sfr __at (0xFA2) IPR2;
+typedef union {
+       struct {
+               unsigned CCP2IP         : 1;
+               unsigned TMR3IP         : 1;
+               unsigned LVDIP          : 1;
+               unsigned BCLIP          : 1;
+               unsigned USBIP          : 1;
+               unsigned CM1IP          : 1;
+               unsigned CM2IP          : 1;
+               unsigned OSCFIP         : 1;
+       };
+       struct {
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned BCL1IP         : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+       };
+} __IPR2bits_t;
+extern volatile __IPR2bits_t __at (0xFA2) IPR2bits;
+
+extern __sfr __at (0xFA3) PIE3;
+typedef union {
+       struct {
+               unsigned CCP3IE         : 1;
+               unsigned CCP4IE         : 1;
+               unsigned CCP5IE         : 1;
+               unsigned TMR4IE         : 1;
+               unsigned TX2IE          : 1;
+               unsigned RC2IE          : 1;
+               unsigned BCL2IE         : 1;
+               unsigned SSP2IE         : 1;
+       };
+} __PIE3bits_t;
+extern volatile __PIE3bits_t __at (0xFA3) PIE3bits;
+
+extern __sfr __at (0xFA4) PIR3;
+typedef union {
+       struct {
+               unsigned CCP3IF         : 1;
+               unsigned CCP4IF         : 1;
+               unsigned CCP5IF         : 1;
+               unsigned TMR4IF         : 1;
+               unsigned TX2IF          : 1;
+               unsigned RC2IF          : 1;
+               unsigned BCL2IF         : 1;
+               unsigned SSP2IF         : 1;
+       };
+} __PIR3bits_t;
+extern volatile __PIR3bits_t __at (0xFA4) PIR3bits;
+
+extern __sfr __at (0xFA5) IPR3;
+typedef union {
+       struct {
+               unsigned CCP3IP         : 1;
+               unsigned CCP4IP         : 1;
+               unsigned CCP5IP         : 1;
+               unsigned TMR4IP         : 1;
+               unsigned TX2IP          : 1;
+               unsigned RC2IP          : 1;
+               unsigned BCL2IP         : 1;
+               unsigned SSP2IP         : 1;
+       };
+} __IPR3bits_t;
+extern volatile __IPR3bits_t __at (0xFA5) IPR3bits;
+
+extern __sfr __at (0xFA6) EECON1;
+typedef union {
+       struct {
+               unsigned                : 1;
+               unsigned WR             : 1;
+               unsigned WREN           : 1;
+               unsigned WRERR          : 1;
+               unsigned FREE           : 1;
+               unsigned WPROG          : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+       };
+} __EECON1bits_t;
+extern volatile __EECON1bits_t __at (0xFA6) EECON1bits;
+
+extern __sfr __at (0xFA7) EECON2;
+
+extern __sfr __at (0xFA8) 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 TXD8           : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned TX8_9          : 1;
+               unsigned                : 1;
+       };
+       struct {
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned NOT_TX8        : 1;
+               unsigned                : 1;
+       };
+} __TXSTA2bits_t;
+extern volatile __TXSTA2bits_t __at (0xFA8) TXSTA2bits;
+
+extern __sfr __at (0xFA9) TXREG2;
+
+extern __sfr __at (0xFAA) RCREG2;
+
+extern __sfr __at (0xFAB) SPBRG2;
+
+extern __sfr __at (0xFAC) 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                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned RC9            : 1;
+               unsigned                : 1;
+       };
+       struct {
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 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;
+       };
+} __RCSTAbits_t;
+extern volatile __RCSTAbits_t __at (0xFAC) RCSTAbits;
+
+extern __sfr __at (0xFAC) 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                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned RC9            : 1;
+               unsigned                : 1;
+       };
+       struct {
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 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;
+       };
+} __RCSTA1bits_t;
+extern volatile __RCSTA1bits_t __at (0xFAC) RCSTA1bits;
+
+extern __sfr __at (0xFAD) 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                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned TX8_9          : 1;
+               unsigned                : 1;
+       };
+       struct {
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned NOT_TX8        : 1;
+               unsigned                : 1;
+       };
+} __TXSTAbits_t;
+extern volatile __TXSTAbits_t __at (0xFAD) TXSTAbits;
+
+extern __sfr __at (0xFAD) 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                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned TX8_9          : 1;
+               unsigned                : 1;
+       };
+       struct {
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned NOT_TX8        : 1;
+               unsigned                : 1;
+       };
+} __TXSTA1bits_t;
+extern volatile __TXSTA1bits_t __at (0xFAD) TXSTA1bits;
+
+extern __sfr __at (0xFAE) TXREG;
+
+extern __sfr __at (0xFAE) TXREG1;
+
+extern __sfr __at (0xFAF) RCREG;
+
+extern __sfr __at (0xFAF) RCREG1;
+
+extern __sfr __at (0xFB0) SPBRG;
+
+extern __sfr __at (0xFB0) SPBRG1;
+
+extern __sfr __at (0xFB1) CCP3CON;
+typedef union {
+       struct {
+               unsigned CCP3M0         : 1;
+               unsigned CCP3M1         : 1;
+               unsigned CCP3M2         : 1;
+               unsigned CCP3M3         : 1;
+               unsigned DC3B0          : 1;
+               unsigned DC3B1          : 1;
+               unsigned P3M0           : 1;
+               unsigned P3M1           : 1;
+       };
+       struct {
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned CCP3Y          : 1;
+               unsigned CCP3X          : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+       };
+} __CCP3CONbits_t;
+extern volatile __CCP3CONbits_t __at (0xFB1) CCP3CONbits;
+
+extern __sfr __at (0xFB1) ECCP3CON;
+typedef union {
+       struct {
+               unsigned CCP3M0         : 1;
+               unsigned CCP3M1         : 1;
+               unsigned CCP3M2         : 1;
+               unsigned CCP3M3         : 1;
+               unsigned DC3B0          : 1;
+               unsigned DC3B1          : 1;
+               unsigned P3M0           : 1;
+               unsigned P3M1           : 1;
+       };
+       struct {
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned CCP3Y          : 1;
+               unsigned CCP3X          : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+       };
+} __ECCP3CONbits_t;
+extern volatile __ECCP3CONbits_t __at (0xFB1) ECCP3CONbits;
+
+extern __sfr __at (0xFB2) CCPR3;
+
+extern __sfr __at (0xFB2) CCPR3L;
+
+extern __sfr __at (0xFB3) CCPR3H;
+
+extern __sfr __at (0xFB4) ECCP3DEL;
+typedef union {
+       struct {
+               unsigned PDC0           : 1;
+               unsigned PDC1           : 1;
+               unsigned PDC2           : 1;
+               unsigned PDC3           : 1;
+               unsigned PDC4           : 1;
+               unsigned PDC5           : 1;
+               unsigned PDC6           : 1;
+               unsigned PRSEN          : 1;
+       };
+       struct {
+               unsigned P3DC0          : 1;
+               unsigned P3DC1          : 1;
+               unsigned P3DC2          : 1;
+               unsigned P3DC3          : 1;
+               unsigned P3DC4          : 1;
+               unsigned P3DC5          : 1;
+               unsigned P3DC6          : 1;
+               unsigned P3RSEN         : 1;
+       };
+} __ECCP3DELbits_t;
+extern volatile __ECCP3DELbits_t __at (0xFB4) ECCP3DELbits;
+
+extern __sfr __at (0xFB5) ECCP3AS;
+typedef union {
+       struct {
+               unsigned PSSBD0         : 1;
+               unsigned PSSBD1         : 1;
+               unsigned PSSAC0         : 1;
+               unsigned PSSAC1         : 1;
+               unsigned ECCPAS0        : 1;
+               unsigned ECCPAS1        : 1;
+               unsigned ECCPAS2        : 1;
+               unsigned ECCPASE        : 1;
+       };
+       struct {
+               unsigned PSS3BD0        : 1;
+               unsigned PSS3BD1        : 1;
+               unsigned PSS3AC0        : 1;
+               unsigned PSS3AC1        : 1;
+               unsigned ECCP3AS0       : 1;
+               unsigned ECCP3AS1       : 1;
+               unsigned ECCP3AS2       : 1;
+               unsigned ECCP3ASE       : 1;
+       };
+} __ECCP3ASbits_t;
+extern volatile __ECCP3ASbits_t __at (0xFB5) ECCP3ASbits;
+
+extern __sfr __at (0xFB6) CCP2CON;
+typedef union {
+       struct {
+               unsigned CCP2M0         : 1;
+               unsigned CCP2M1         : 1;
+               unsigned CCP2M2         : 1;
+               unsigned CCP2M3         : 1;
+               unsigned DC2B0          : 1;
+               unsigned DC2B1          : 1;
+               unsigned P2M0           : 1;
+               unsigned P2M1           : 1;
+       };
+       struct {
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned CCP2Y          : 1;
+               unsigned CCP2X          : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+       };
+} __CCP2CONbits_t;
+extern volatile __CCP2CONbits_t __at (0xFB6) CCP2CONbits;
+
+extern __sfr __at (0xFB6) ECCP2CON;
+typedef union {
+       struct {
+               unsigned CCP2M0         : 1;
+               unsigned CCP2M1         : 1;
+               unsigned CCP2M2         : 1;
+               unsigned CCP2M3         : 1;
+               unsigned DC2B0          : 1;
+               unsigned DC2B1          : 1;
+               unsigned P2M0           : 1;
+               unsigned P2M1           : 1;
+       };
+       struct {
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned CCP2Y          : 1;
+               unsigned CCP2X          : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+       };
+} __ECCP2CONbits_t;
+extern volatile __ECCP2CONbits_t __at (0xFB6) ECCP2CONbits;
+
+extern __sfr __at (0xFB7) CCPR2;
+
+extern __sfr __at (0xFB7) CCPR2L;
+
+extern __sfr __at (0xFB8) CCPR2H;
+
+extern __sfr __at (0xFB9) ECCP2DEL;
+typedef union {
+       struct {
+               unsigned PDC0           : 1;
+               unsigned PDC1           : 1;
+               unsigned PDC2           : 1;
+               unsigned PDC3           : 1;
+               unsigned PDC4           : 1;
+               unsigned PDC5           : 1;
+               unsigned PDC6           : 1;
+               unsigned PRSEN          : 1;
+       };
+       struct {
+               unsigned P2DC0          : 1;
+               unsigned P2DC1          : 1;
+               unsigned P2DC2          : 1;
+               unsigned P2DC3          : 1;
+               unsigned P2DC4          : 1;
+               unsigned P2DC5          : 1;
+               unsigned P2DC6          : 1;
+               unsigned P2RSEN         : 1;
+       };
+} __ECCP2DELbits_t;
+extern volatile __ECCP2DELbits_t __at (0xFB9) ECCP2DELbits;
+
+extern __sfr __at (0xFBA) ECCP2AS;
+typedef union {
+       struct {
+               unsigned PSSBD0         : 1;
+               unsigned PSSBD1         : 1;
+               unsigned PSSAC0         : 1;
+               unsigned PSSAC1         : 1;
+               unsigned ECCPAS0        : 1;
+               unsigned ECCPAS1        : 1;
+               unsigned ECCPAS2        : 1;
+               unsigned ECCPASE        : 1;
+       };
+       struct {
+               unsigned PSS2BD0        : 1;
+               unsigned PSS2BD1        : 1;
+               unsigned PSS2AC0        : 1;
+               unsigned PSS2AC1        : 1;
+               unsigned ECCP2AS0       : 1;
+               unsigned ECCP2AS1       : 1;
+               unsigned ECCP2AS2       : 1;
+               unsigned ECCP2ASE       : 1;
+       };
+} __ECCP2ASbits_t;
+extern volatile __ECCP2ASbits_t __at (0xFBA) ECCP2ASbits;
+
+extern __sfr __at (0xFBB) 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;
+       };
+} __CCP1CONbits_t;
+extern volatile __CCP1CONbits_t __at (0xFBB) CCP1CONbits;
+
+extern __sfr __at (0xFBB) 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;
+       };
+} __ECCP1CONbits_t;
+extern volatile __ECCP1CONbits_t __at (0xFBB) ECCP1CONbits;
+
+extern __sfr __at (0xFBC) CCPR1;
+
+extern __sfr __at (0xFBC) CCPR1L;
+
+extern __sfr __at (0xFBD) CCPR1H;
+
+extern __sfr __at (0xFBE) ECCP1DEL;
+typedef union {
+       struct {
+               unsigned PDC0           : 1;
+               unsigned PDC1           : 1;
+               unsigned PDC2           : 1;
+               unsigned PDC3           : 1;
+               unsigned PDC4           : 1;
+               unsigned PDC5           : 1;
+               unsigned PDC6           : 1;
+               unsigned PRSEN          : 1;
+       };
+       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;
+       };
+} __ECCP1DELbits_t;
+extern volatile __ECCP1DELbits_t __at (0xFBE) ECCP1DELbits;
+
+extern __sfr __at (0xFBF) ECCP1AS;
+typedef union {
+       struct {
+               unsigned PSSBD0         : 1;
+               unsigned PSSBD1         : 1;
+               unsigned PSSAC0         : 1;
+               unsigned PSSAC1         : 1;
+               unsigned ECCPAS0        : 1;
+               unsigned ECCPAS1        : 1;
+               unsigned ECCPAS2        : 1;
+               unsigned ECCPASE        : 1;
+       };
+       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;
+       };
+} __ECCP1ASbits_t;
+extern volatile __ECCP1ASbits_t __at (0xFBF) ECCP1ASbits;
+
+extern __sfr __at (0xFC0) WDTCON;
+typedef union {
+       struct {
+               unsigned SWDTE          : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned DEVCFG         : 1;
+               unsigned                : 1;
+               unsigned LVDSTAT        : 1;
+               unsigned REGSLP         : 1;
+       };
+       struct {
+               unsigned SWDTEN         : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned ADSHR          : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+       };
+} __WDTCONbits_t;
+extern volatile __WDTCONbits_t __at (0xFC0) WDTCONbits;
+
+extern __sfr __at (0xFC1) ADCON1;
+typedef union {
+       struct {
+               unsigned ADCS0          : 1;
+               unsigned ADCS1          : 1;
+               unsigned ADCS2          : 1;
+               unsigned ACQT0          : 1;
+               unsigned ACQT1          : 1;
+               unsigned ACQT2          : 1;
+               unsigned ADCAL          : 1;
+               unsigned ADFM           : 1;
+       };
+} __ADCON1bits_t;
+extern volatile __ADCON1bits_t __at (0xFC1) ADCON1bits;
+
+extern __sfr __at (0xFC1) ANCON0;
+typedef union {
+       struct {
+               unsigned PCFG0          : 1;
+               unsigned PCFG1          : 1;
+               unsigned PCFG2          : 1;
+               unsigned PCFG3          : 1;
+               unsigned PCFG4          : 1;
+               unsigned PCFG5          : 1;
+               unsigned PCFG6          : 1;
+               unsigned PCFG7          : 1;
+       };
+} __ANCON0bits_t;
+extern volatile __ANCON0bits_t __at (0xFC1) ANCON0bits;
+
+extern __sfr __at (0xFC2) ADCON0;
+typedef union {
+       struct {
+               unsigned ADON           : 1;
+               unsigned DONE           : 1;
+               unsigned CHS0           : 1;
+               unsigned CHS1           : 1;
+               unsigned CHS2           : 1;
+               unsigned CHS3           : 1;
+               unsigned VCFG0          : 1;
+               unsigned VCFG1          : 1;
+       };
+       struct {
+               unsigned                : 1;
+               unsigned GO_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;
+       };
+} __ADCON0bits_t;
+extern volatile __ADCON0bits_t __at (0xFC2) ADCON0bits;
+
+extern __sfr __at (0xFC2) ANCON1;
+typedef union {
+       struct {
+               unsigned PCFG8          : 1;
+               unsigned PCFG9          : 1;
+               unsigned PCFG10         : 1;
+               unsigned PCFG11         : 1;
+               unsigned PCFG12         : 1;
+               unsigned PCFG13         : 1;
+               unsigned PCFG14         : 1;
+               unsigned PCFG15         : 1;
+       };
+} __ANCON1bits_t;
+extern volatile __ANCON1bits_t __at (0xFC2) ANCON1bits;
+
+extern __sfr __at (0xFC3) ADRES;
+
+extern __sfr __at (0xFC3) ADRESL;
+
+extern __sfr __at (0xFC4) ADRESH;
+
+extern __sfr __at (0xFC5) SSP1CON2;
+typedef union {
+       struct {
+               unsigned SEN            : 1;
+               unsigned RSEN           : 1;
+               unsigned PEN            : 1;
+               unsigned RCEN           : 1;
+               unsigned ACKEN          : 1;
+               unsigned ACKDT          : 1;
+               unsigned ACKSTAT        : 1;
+               unsigned GCEN           : 1;
+       };
+       struct {
+               unsigned                : 1;
+               unsigned ADMSK1         : 1;
+               unsigned ADMSK2         : 1;
+               unsigned ADMSK3         : 1;
+               unsigned ADMSK4         : 1;
+               unsigned ADMSK5         : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+       };
+} __SSP1CON2bits_t;
+extern volatile __SSP1CON2bits_t __at (0xFC5) SSP1CON2bits;
+
+extern __sfr __at (0xFC5) SSPCON2;
+typedef union {
+       struct {
+               unsigned SEN            : 1;
+               unsigned RSEN           : 1;
+               unsigned PEN            : 1;
+               unsigned RCEN           : 1;
+               unsigned ACKEN          : 1;
+               unsigned ACKDT          : 1;
+               unsigned ACKSTAT        : 1;
+               unsigned GCEN           : 1;
+       };
+       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 volatile __SSPCON2bits_t __at (0xFC5) SSPCON2bits;
+
+extern __sfr __at (0xFC6) SSP1CON1;
+typedef union {
+       struct {
+               unsigned SSPM0          : 1;
+               unsigned SSPM1          : 1;
+               unsigned SSPM2          : 1;
+               unsigned SSPM3          : 1;
+               unsigned CKP            : 1;
+               unsigned SSPEN          : 1;
+               unsigned SSPOV          : 1;
+               unsigned WCOL           : 1;
+       };
+} __SSP1CON1bits_t;
+extern volatile __SSP1CON1bits_t __at (0xFC6) SSP1CON1bits;
+
+extern __sfr __at (0xFC6) SSPCON1;
+typedef union {
+       struct {
+               unsigned SSPM0          : 1;
+               unsigned SSPM1          : 1;
+               unsigned SSPM2          : 1;
+               unsigned SSPM3          : 1;
+               unsigned CKP            : 1;
+               unsigned SSPEN          : 1;
+               unsigned SSPOV          : 1;
+               unsigned WCOL           : 1;
+       };
+} __SSPCON1bits_t;
+extern volatile __SSPCON1bits_t __at (0xFC6) SSPCON1bits;
+
+extern __sfr __at (0xFC7) SSP1STAT;
+typedef union {
+       struct {
+               unsigned BF             : 1;
+               unsigned UA             : 1;
+               unsigned R_W            : 1;
+               unsigned S              : 1;
+               unsigned P              : 1;
+               unsigned D_A            : 1;
+               unsigned CKE            : 1;
+               unsigned SMP            : 1;
+       };
+       struct {
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned I2C_READ       : 1;
+               unsigned I2C_START      : 1;
+               unsigned I2C_STOP       : 1;
+               unsigned I2C_DAT        : 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 R              : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned D              : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+       };
+} __SSP1STATbits_t;
+extern volatile __SSP1STATbits_t __at (0xFC7) SSP1STATbits;
+
+extern __sfr __at (0xFC7) SSPSTAT;
+typedef union {
+       struct {
+               unsigned BF             : 1;
+               unsigned UA             : 1;
+               unsigned R_W            : 1;
+               unsigned S              : 1;
+               unsigned P              : 1;
+               unsigned D_A            : 1;
+               unsigned CKE            : 1;
+               unsigned SMP            : 1;
+       };
+       struct {
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned I2C_READ       : 1;
+               unsigned I2C_START      : 1;
+               unsigned I2C_STOP       : 1;
+               unsigned I2C_DAT        : 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 R              : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned D              : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+       };
+} __SSPSTATbits_t;
+extern volatile __SSPSTATbits_t __at (0xFC7) SSPSTATbits;
+
+extern __sfr __at (0xFC8) SSP1ADD;
+
+extern __sfr __at (0xFC8) SSP1MSK;
+
+extern __sfr __at (0xFC8) SSPADD;
+
+extern __sfr __at (0xFC9) SSP1BUF;
+
+extern __sfr __at (0xFC9) SSPBUF;
+
+extern __sfr __at (0xFCA) T2CON;
+typedef union {
+       struct {
+               unsigned T2CKPS0        : 1;
+               unsigned T2CKPS1        : 1;
+               unsigned TMR2ON         : 1;
+               unsigned T2OUTPS0       : 1;
+               unsigned T2OUTPS1       : 1;
+               unsigned T2OUTPS2       : 1;
+               unsigned T2OUTPS3       : 1;
+               unsigned                : 1;
+       };
+} __T2CONbits_t;
+extern volatile __T2CONbits_t __at (0xFCA) T2CONbits;
+
+extern __sfr __at (0xFCB) MEMCON;
+typedef union {
+       struct {
+               unsigned WM0            : 1;
+               unsigned WM1            : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned WAIT0          : 1;
+               unsigned WAIT1          : 1;
+               unsigned                : 1;
+               unsigned EDBIS          : 1;
+       };
+} __MEMCONbits_t;
+extern volatile __MEMCONbits_t __at (0xFCB) MEMCONbits;
+
+extern __sfr __at (0xFCB) PR2;
+
+extern __sfr __at (0xFCC) PADCFG1;
+typedef union {
+       struct {
+               unsigned PMPTTL         : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+       };
+} __PADCFG1bits_t;
+extern volatile __PADCFG1bits_t __at (0xFCC) PADCFG1bits;
+
+extern __sfr __at (0xFCC) TMR2;
+
+extern __sfr __at (0xFCD) ODCON3;
+typedef union {
+       struct {
+               unsigned SPI1OD         : 1;
+               unsigned SPI2OD         : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+       };
+} __ODCON3bits_t;
+extern volatile __ODCON3bits_t __at (0xFCD) ODCON3bits;
+
+extern __sfr __at (0xFCD) T1CON;
+typedef union {
+       struct {
+               unsigned TMR1ON         : 1;
+               unsigned TMR1CS         : 1;
+               unsigned T1SYNC         : 1;
+               unsigned T1OSCEN        : 1;
+               unsigned T1CKPS0        : 1;
+               unsigned T1CKPS1        : 1;
+               unsigned T1RUN          : 1;
+               unsigned RD16           : 1;
+       };
+       struct {
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned T1INSYNC       : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+       };
+       struct {
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned NOT_T1SYNC     : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+       };
+} __T1CONbits_t;
+extern volatile __T1CONbits_t __at (0xFCD) T1CONbits;
+
+extern __sfr __at (0xFCE) ODCON2;
+typedef union {
+       struct {
+               unsigned USART1OD       : 1;
+               unsigned USART2OD       : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+       };
+       struct {
+               unsigned U1OD           : 1;
+               unsigned U2OD           : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+       };
+} __ODCON2bits_t;
+extern volatile __ODCON2bits_t __at (0xFCE) ODCON2bits;
+
+extern __sfr __at (0xFCE) TMR1L;
+
+extern __sfr __at (0xFCF) ODCON1;
+typedef union {
+       struct {
+               unsigned ECCP1OD        : 1;
+               unsigned ECCP2OD        : 1;
+               unsigned ECCP3OD        : 1;
+               unsigned CCP4OD         : 1;
+               unsigned CCP5OD         : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+       };
+} __ODCON1bits_t;
+extern volatile __ODCON1bits_t __at (0xFCF) ODCON1bits;
+
+extern __sfr __at (0xFCF) TMR1H;
+
+extern __sfr __at (0xFD0) RCON;
+typedef union {
+       struct {
+               unsigned NOT_BOR        : 1;
+               unsigned NOT_POR        : 1;
+               unsigned NOT_PD         : 1;
+               unsigned NOT_TO         : 1;
+               unsigned NOT_RI         : 1;
+               unsigned NOT_CM         : 1;
+               unsigned                : 1;
+               unsigned IPEN           : 1;
+       };
+       struct {
+               unsigned BOR            : 1;
+               unsigned POR            : 1;
+               unsigned PD             : 1;
+               unsigned TO             : 1;
+               unsigned RI             : 1;
+               unsigned CM             : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+       };
+} __RCONbits_t;
+extern volatile __RCONbits_t __at (0xFD0) RCONbits;
+
+extern __sfr __at (0xFD1) CM2CON;
+typedef union {
+       struct {
+               unsigned C1CH0          : 1;
+               unsigned C1CH1          : 1;
+               unsigned CREF           : 1;
+               unsigned EVPOL0         : 1;
+               unsigned EVPOL1         : 1;
+               unsigned CPOL           : 1;
+               unsigned COE            : 1;
+               unsigned CON            : 1;
+       };
+       struct {
+               unsigned CCH0           : 1;
+               unsigned CCH1           : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+       };
+} __CM2CONbits_t;
+extern volatile __CM2CONbits_t __at (0xFD1) CM2CONbits;
+
+extern __sfr __at (0xFD1) CM2CON1;
+typedef union {
+       struct {
+               unsigned C1CH0          : 1;
+               unsigned C1CH1          : 1;
+               unsigned CREF           : 1;
+               unsigned EVPOL0         : 1;
+               unsigned EVPOL1         : 1;
+               unsigned CPOL           : 1;
+               unsigned COE            : 1;
+               unsigned CON            : 1;
+       };
+       struct {
+               unsigned CCH0           : 1;
+               unsigned CCH1           : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+       };
+} __CM2CON1bits_t;
+extern volatile __CM2CON1bits_t __at (0xFD1) CM2CON1bits;
+
+extern __sfr __at (0xFD2) CM1CON;
+typedef union {
+       struct {
+               unsigned C1CH0          : 1;
+               unsigned C1CH1          : 1;
+               unsigned CREF           : 1;
+               unsigned EVPOL0         : 1;
+               unsigned EVPOL1         : 1;
+               unsigned CPOL           : 1;
+               unsigned COE            : 1;
+               unsigned CON            : 1;
+       };
+       struct {
+               unsigned CCH0           : 1;
+               unsigned CCH1           : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+       };
+} __CM1CONbits_t;
+extern volatile __CM1CONbits_t __at (0xFD2) CM1CONbits;
+
+extern __sfr __at (0xFD2) CM1CON1;
+typedef union {
+       struct {
+               unsigned C1CH0          : 1;
+               unsigned C1CH1          : 1;
+               unsigned CREF           : 1;
+               unsigned EVPOL0         : 1;
+               unsigned EVPOL1         : 1;
+               unsigned CPOL           : 1;
+               unsigned COE            : 1;
+               unsigned CON            : 1;
+       };
+       struct {
+               unsigned CCH0           : 1;
+               unsigned CCH1           : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+       };
+} __CM1CON1bits_t;
+extern volatile __CM1CON1bits_t __at (0xFD2) CM1CON1bits;
+
+extern __sfr __at (0xFD3) OSCCON;
+typedef union {
+       struct {
+               unsigned SCS0           : 1;
+               unsigned SCS1           : 1;
+               unsigned IOFS           : 1;
+               unsigned OSTS           : 1;
+               unsigned IRCF0          : 1;
+               unsigned IRCF1          : 1;
+               unsigned IRCF2          : 1;
+               unsigned IDLEN          : 1;
+       };
+       struct {
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned FLTS           : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+       };
+} __OSCCONbits_t;
+extern volatile __OSCCONbits_t __at (0xFD3) OSCCONbits;
+
+extern __sfr __at (0xFD3) 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;
+       };
+} __REFOCONbits_t;
+extern volatile __REFOCONbits_t __at (0xFD3) REFOCONbits;
+
+extern __sfr __at (0xFD5) T0CON;
+typedef union {
+       struct {
+               unsigned T0PS0          : 1;
+               unsigned T0PS1          : 1;
+               unsigned T0PS2          : 1;
+               unsigned PSA            : 1;
+               unsigned T0SE           : 1;
+               unsigned T0CS           : 1;
+               unsigned T08BIT         : 1;
+               unsigned TMR0ON         : 1;
+       };
+       struct {
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned T0PS3          : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+       };
+} __T0CONbits_t;
+extern volatile __T0CONbits_t __at (0xFD5) T0CONbits;
+
+extern __sfr __at (0xFD6) TMR0L;
+
+extern __sfr __at (0xFD7) TMR0H;
+
+extern __sfr __at (0xFD8) STATUS;
+typedef union {
+       struct {
+               unsigned C              : 1;
+               unsigned DC             : 1;
+               unsigned Z              : 1;
+               unsigned OV             : 1;
+               unsigned N              : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+       };
+} __STATUSbits_t;
+extern volatile __STATUSbits_t __at (0xFD8) STATUSbits;
+
+extern __sfr __at (0xFD9) FSR2L;
+
+extern __sfr __at (0xFDA) FSR2H;
+
+extern __sfr __at (0xFDB) PLUSW2;
+
+extern __sfr __at (0xFDC) PREINC2;
+
+extern __sfr __at (0xFDD) POSTDEC2;
+
+extern __sfr __at (0xFDE) POSTINC2;
+
+extern __sfr __at (0xFDF) INDF2;
+
+extern __sfr __at (0xFE0) BSR;
+
+extern __sfr __at (0xFE1) FSR1L;
+
+extern __sfr __at (0xFE2) FSR1H;
+
+extern __sfr __at (0xFE3) PLUSW1;
+
+extern __sfr __at (0xFE4) PREINC1;
+
+extern __sfr __at (0xFE5) POSTDEC1;
+
+extern __sfr __at (0xFE6) POSTINC1;
+
+extern __sfr __at (0xFE7) INDF1;
+
+extern __sfr __at (0xFE8) WREG;
+
+extern __sfr __at (0xFE9) FSR0L;
+
+extern __sfr __at (0xFEA) FSR0H;
+
+extern __sfr __at (0xFEB) PLUSW0;
+
+extern __sfr __at (0xFEC) PREINC0;
+
+extern __sfr __at (0xFED) POSTDEC0;
+
+extern __sfr __at (0xFEE) POSTINC0;
+
+extern __sfr __at (0xFEF) INDF0;
+
+extern __sfr __at (0xFF0) INTCON3;
+typedef union {
+       struct {
+               unsigned INT1F          : 1;
+               unsigned INT2F          : 1;
+               unsigned INT3F          : 1;
+               unsigned INT1E          : 1;
+               unsigned INT2E          : 1;
+               unsigned INT3E          : 1;
+               unsigned INT1P          : 1;
+               unsigned INT2P          : 1;
+       };
+       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;
+       };
+} __INTCON3bits_t;
+extern volatile __INTCON3bits_t __at (0xFF0) INTCON3bits;
+
+extern __sfr __at (0xFF1) INTCON2;
+typedef union {
+       struct {
+               unsigned RBIP           : 1;
+               unsigned INT3P          : 1;
+               unsigned T0IP           : 1;
+               unsigned INTEDG3        : 1;
+               unsigned INTEDG2        : 1;
+               unsigned INTEDG1        : 1;
+               unsigned INTEDG0        : 1;
+               unsigned NOT_RBPU       : 1;
+       };
+       struct {
+               unsigned                : 1;
+               unsigned INT3IP         : 1;
+               unsigned TMR0IP         : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned RBPU           : 1;
+       };
+} __INTCON2bits_t;
+extern volatile __INTCON2bits_t __at (0xFF1) INTCON2bits;
+
+extern __sfr __at (0xFF2) INTCON;
+typedef union {
+       struct {
+               unsigned RBIF           : 1;
+               unsigned INT0F          : 1;
+               unsigned T0IF           : 1;
+               unsigned RBIE           : 1;
+               unsigned INT0E          : 1;
+               unsigned T0IE           : 1;
+               unsigned PEIE           : 1;
+               unsigned GIE            : 1;
+       };
+       struct {
+               unsigned                : 1;
+               unsigned INT0IF         : 1;
+               unsigned TMR0IF         : 1;
+               unsigned                : 1;
+               unsigned INT0IE         : 1;
+               unsigned TMR0IE         : 1;
+               unsigned GIEL           : 1;
+               unsigned GIEH           : 1;
+       };
+} __INTCONbits_t;
+extern volatile __INTCONbits_t __at (0xFF2) INTCONbits;
+
+extern __sfr __at (0xFF3) PROD;
+
+extern __sfr __at (0xFF3) PRODL;
+
+extern __sfr __at (0xFF4) PRODH;
+
+extern __sfr __at (0xFF5) TABLAT;
+
+extern __sfr __at (0xFF6) TBLPTR;
+
+extern __sfr __at (0xFF6) TBLPTRL;
+
+extern __sfr __at (0xFF7) TBLPTRH;
+
+extern __sfr __at (0xFF8) TBLPTRU;
+
+extern __sfr __at (0xFF9) PC;
+
+extern __sfr __at (0xFF9) PCL;
+
+extern __sfr __at (0xFFA) PCLATH;
+
+extern __sfr __at (0xFFB) PCLATU;
+
+extern __sfr __at (0xFFC) STKPTR;
+typedef union {
+       struct {
+               unsigned STKPTR0        : 1;
+               unsigned STKPTR1        : 1;
+               unsigned STKPTR2        : 1;
+               unsigned STKPTR3        : 1;
+               unsigned STKPTR4        : 1;
+               unsigned                : 1;
+               unsigned STKUNF         : 1;
+               unsigned STKOVF         : 1;
+       };
+       struct {
+               unsigned SP0            : 1;
+               unsigned SP1            : 1;
+               unsigned SP2            : 1;
+               unsigned SP3            : 1;
+               unsigned SP4            : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned STKFUL         : 1;
+       };
+} __STKPTRbits_t;
+extern volatile __STKPTRbits_t __at (0xFFC) STKPTRbits;
+
+extern __sfr __at (0xFFD) TOS;
+
+extern __sfr __at (0xFFD) TOSL;
+
+extern __sfr __at (0xFFE) TOSH;
+
+extern __sfr __at (0xFFF) TOSU;
+
+
+#endif
+
index 26fc7afadf8a54f4204d006aadfc7d1c7bb116d2..cfb0179d29df330583b3464e38710acf44071d46 100644 (file)
@@ -60,6 +60,9 @@
 #elif defined(pic18f2331)
 #  include <pic18f2331.h>
 
+#elif defined(pic18f23k20)
+#  include <pic18f23k20.h>
+
 #elif defined(pic18f2410)
 #  include <pic18f2410.h>
 
@@ -84,6 +87,9 @@
 #elif defined(pic18f24j10)
 #  include <pic18f24j10.h>
 
+#elif defined(pic18f24k20)
+#  include <pic18f24k20.h>
+
 #elif defined(pic18f2510)
 #  include <pic18f2510.h>
 
 #elif defined(pic18f25j10)
 #  include <pic18f25j10.h>
 
+#elif defined(pic18f25k20)
+#  include <pic18f25k20.h>
+
 #elif defined(pic18f2610)
 #  include <pic18f2610.h>
 
 #elif defined(pic18f2685)
 #  include <pic18f2685.h>
 
+#elif defined(pic18f26k20)
+#  include <pic18f26k20.h>
+
 #elif defined(pic18f4220)
 #  include <pic18f4220.h>
 
 #elif defined(pic18f4331)
 #  include <pic18f4331.h>
 
+#elif defined(pic18f43k20)
+#  include <pic18f43k20.h>
+
 #elif defined(pic18f4410)
 #  include <pic18f4410.h>
 
 #elif defined(pic18f44j10)
 #  include <pic18f44j10.h>
 
+#elif defined(pic18f44k20)
+#  include <pic18f44k20.h>
+
 #elif defined(pic18f4510)
 #  include <pic18f4510.h>
 
 #elif defined(pic18f45j10)
 #  include <pic18f45j10.h>
 
+#elif defined(pic18f45k20)
+#  include <pic18f45k20.h>
+
 #elif defined(pic18f4610)
 #  include <pic18f4610.h>
 
 #elif defined(pic18f4685)
 #  include <pic18f4685.h>
 
+#elif defined(pic18f46k20)
+#  include <pic18f46k20.h>
+
 #elif defined(pic18f6520)
 #  include <pic18f6520.h>
 
 #elif defined(pic18f6585)
 #  include <pic18f6585.h>
 
+#elif defined(pic18f65j50)
+#  include <pic18f65j50.h>
+
 #elif defined(pic18f6620)
 #  include <pic18f6620.h>
 
 #elif defined(pic18f6680)
 #  include <pic18f6680.h>
 
+#elif defined(pic18f66j50)
+#  include <pic18f66j50.h>
+
+#elif defined(pic18f66j55)
+#  include <pic18f66j55.h>
+
 #elif defined(pic18f66j60)
 #  include <pic18f66j60.h>
 
 #elif defined(pic18f6720)
 #  include <pic18f6720.h>
 
+#elif defined(pic18f67j50)
+#  include <pic18f67j50.h>
+
 #elif defined(pic18f67j60)
 #  include <pic18f67j60.h>
 
 #elif defined(pic18f8585)
 #  include <pic18f8585.h>
 
+#elif defined(pic18f85j50)
+#  include <pic18f85j50.h>
+
 #elif defined(pic18f8620)
 #  include <pic18f8620.h>
 
 #elif defined(pic18f8680)
 #  include <pic18f8680.h>
 
+#elif defined(pic18f86j50)
+#  include <pic18f86j50.h>
+
+#elif defined(pic18f86j55)
+#  include <pic18f86j55.h>
+
 #elif defined(pic18f86j60)
 #  include <pic18f86j60.h>
 
 #elif defined(pic18f8720)
 #  include <pic18f8720.h>
 
+#elif defined(pic18f87j50)
+#  include <pic18f87j50.h>
+
 #elif defined(pic18f87j60)
 #  include <pic18f87j60.h>
 
index 55baa836ef497f738e20853b505df7df5cecd656..22cee8b24c94082a8101236b85b3e8f3bc7965df 100644 (file)
@@ -3,7 +3,7 @@ AM_CFLAGS += --std-c99
 AM_CFLAGS += --asm="$(CCAS)"
 AM_CFLAGS += -I.
 AM_CFLAGS += -I$(top_srcdir)/../../include/pic16
-AM_CFLAGS += -Wa,-q
+##AM_CFLAGS += -Wa,-q
 
 AM_CFLAGS += --fommit-frame-pointer
 AM_CFLAGS += --obanksel=9
index fc5969620fd8674e2e61ce3cd4b1de6251159898..47aad5e6bc753a34a8c249fa7e76ef9e02d911fc 100644 (file)
@@ -15,6 +15,10 @@ lib_LIBRARIES += libdev18f2220.a
 libdev18f2220_a_SOURCES = pic18f2220.c
 libdev18f2220_a_CFLAGS = -p18f2220 $(AM_CFLAGS)
 
+lib_LIBRARIES += libdev18f2221.a
+libdev18f2221_a_SOURCES = pic18f2221.c
+libdev18f2221_a_CFLAGS = -p18f2221 $(AM_CFLAGS)
+
 lib_LIBRARIES += libdev18f2320.a
 libdev18f2320_a_SOURCES = pic18f2320.c
 libdev18f2320_a_CFLAGS = -p18f2320 $(AM_CFLAGS)
@@ -27,6 +31,10 @@ lib_LIBRARIES += libdev18f2331.a
 libdev18f2331_a_SOURCES = pic18f2331.c
 libdev18f2331_a_CFLAGS = -p18f2331 $(AM_CFLAGS)
 
+lib_LIBRARIES += libdev18f23k20.a
+libdev18f23k20_a_SOURCES = pic18f23k20.c
+libdev18f23k20_a_CFLAGS = -p18f23k20 $(AM_CFLAGS)
+
 lib_LIBRARIES += libdev18f2410.a
 libdev18f2410_a_SOURCES = pic18f2410.c
 libdev18f2410_a_CFLAGS = -p18f2410 $(AM_CFLAGS)
@@ -39,6 +47,10 @@ lib_LIBRARIES += libdev18f2420.a
 libdev18f2420_a_SOURCES = pic18f2420.c
 libdev18f2420_a_CFLAGS = -p18f2420 $(AM_CFLAGS)
 
+lib_LIBRARIES += libdev18f2423.a
+libdev18f2423_a_SOURCES = pic18f2423.c
+libdev18f2423_a_CFLAGS = -p18f2423 $(AM_CFLAGS)
+
 lib_LIBRARIES += libdev18f2431.a
 libdev18f2431_a_SOURCES = pic18f2431.c
 libdev18f2431_a_CFLAGS = -p18f2431 $(AM_CFLAGS)
@@ -63,6 +75,14 @@ lib_LIBRARIES += libdev18f24j10.a
 libdev18f24j10_a_SOURCES = pic18f24j10.c
 libdev18f24j10_a_CFLAGS = -p18f24j10 $(AM_CFLAGS)
 
+lib_LIBRARIES += libdev18f24k20.a
+libdev18f24k20_a_SOURCES = pic18f24k20.c
+libdev18f24k20_a_CFLAGS = -p18f24k20 $(AM_CFLAGS)
+
+lib_LIBRARIES += libdev18f2510.a
+libdev18f2510_a_SOURCES = pic18f2510.c
+libdev18f2510_a_CFLAGS = -p18f2510 $(AM_CFLAGS)
+
 lib_LIBRARIES += libdev18f2515.a
 libdev18f2515_a_SOURCES = pic18f2515.c
 libdev18f2515_a_CFLAGS = -p18f2515 $(AM_CFLAGS)
@@ -103,6 +123,10 @@ lib_LIBRARIES += libdev18f25j10.a
 libdev18f25j10_a_SOURCES = pic18f25j10.c
 libdev18f25j10_a_CFLAGS = -p18f25j10 $(AM_CFLAGS)
 
+lib_LIBRARIES += libdev18f25k20.a
+libdev18f25k20_a_SOURCES = pic18f25k20.c
+libdev18f25k20_a_CFLAGS = -p18f25k20 $(AM_CFLAGS)
+
 lib_LIBRARIES += libdev18f2610.a
 libdev18f2610_a_SOURCES = pic18f2610.c
 libdev18f2610_a_CFLAGS = -p18f2610 $(AM_CFLAGS)
@@ -123,10 +147,18 @@ lib_LIBRARIES += libdev18f2685.a
 libdev18f2685_a_SOURCES = pic18f2685.c
 libdev18f2685_a_CFLAGS = -p18f2685 $(AM_CFLAGS)
 
+lib_LIBRARIES += libdev18f26k20.a
+libdev18f26k20_a_SOURCES = pic18f26k20.c
+libdev18f26k20_a_CFLAGS = -p18f26k20 $(AM_CFLAGS)
+
 lib_LIBRARIES += libdev18f4220.a
 libdev18f4220_a_SOURCES = pic18f4220.c
 libdev18f4220_a_CFLAGS = -p18f4220 $(AM_CFLAGS)
 
+lib_LIBRARIES += libdev18f4221.a
+libdev18f4221_a_SOURCES = pic18f4221.c
+libdev18f4221_a_CFLAGS = -p18f4221 $(AM_CFLAGS)
+
 lib_LIBRARIES += libdev18f4320.a
 libdev18f4320_a_SOURCES = pic18f4320.c
 libdev18f4320_a_CFLAGS = -p18f4320 $(AM_CFLAGS)
@@ -139,6 +171,10 @@ lib_LIBRARIES += libdev18f4331.a
 libdev18f4331_a_SOURCES = pic18f4331.c
 libdev18f4331_a_CFLAGS = -p18f4331 $(AM_CFLAGS)
 
+lib_LIBRARIES += libdev18f43k20.a
+libdev18f43k20_a_SOURCES = pic18f43k20.c
+libdev18f43k20_a_CFLAGS = -p18f43k20 $(AM_CFLAGS)
+
 lib_LIBRARIES += libdev18f4410.a
 libdev18f4410_a_SOURCES = pic18f4410.c
 libdev18f4410_a_CFLAGS = -p18f4410 $(AM_CFLAGS)
@@ -151,6 +187,10 @@ lib_LIBRARIES += libdev18f4420.a
 libdev18f4420_a_SOURCES = pic18f4420.c
 libdev18f4420_a_CFLAGS = -p18f4420 $(AM_CFLAGS)
 
+lib_LIBRARIES += libdev18f4423.a
+libdev18f4423_a_SOURCES = pic18f4423.c
+libdev18f4423_a_CFLAGS = -p18f4423 $(AM_CFLAGS)
+
 lib_LIBRARIES += libdev18f4431.a
 libdev18f4431_a_SOURCES = pic18f4431.c
 libdev18f4431_a_CFLAGS = -p18f4431 $(AM_CFLAGS)
@@ -175,6 +215,10 @@ lib_LIBRARIES += libdev18f44j10.a
 libdev18f44j10_a_SOURCES = pic18f44j10.c
 libdev18f44j10_a_CFLAGS = -p18f44j10 $(AM_CFLAGS)
 
+lib_LIBRARIES += libdev18f44k20.a
+libdev18f44k20_a_SOURCES = pic18f44k20.c
+libdev18f44k20_a_CFLAGS = -p18f44k20 $(AM_CFLAGS)
+
 lib_LIBRARIES += libdev18f4510.a
 libdev18f4510_a_SOURCES = pic18f4510.c
 libdev18f4510_a_CFLAGS = -p18f4510 $(AM_CFLAGS)
@@ -191,6 +235,10 @@ lib_LIBRARIES += libdev18f4520.a
 libdev18f4520_a_SOURCES = pic18f4520.c
 libdev18f4520_a_CFLAGS = -p18f4520 $(AM_CFLAGS)
 
+lib_LIBRARIES += libdev18f4523.a
+libdev18f4523_a_SOURCES = pic18f4523.c
+libdev18f4523_a_CFLAGS = -p18f4523 $(AM_CFLAGS)
+
 lib_LIBRARIES += libdev18f4525.a
 libdev18f4525_a_SOURCES = pic18f4525.c
 libdev18f4525_a_CFLAGS = -p18f4525 $(AM_CFLAGS)
@@ -215,6 +263,10 @@ lib_LIBRARIES += libdev18f45j10.a
 libdev18f45j10_a_SOURCES = pic18f45j10.c
 libdev18f45j10_a_CFLAGS = -p18f45j10 $(AM_CFLAGS)
 
+lib_LIBRARIES += libdev18f45k20.a
+libdev18f45k20_a_SOURCES = pic18f45k20.c
+libdev18f45k20_a_CFLAGS = -p18f45k20 $(AM_CFLAGS)
+
 lib_LIBRARIES += libdev18f4610.a
 libdev18f4610_a_SOURCES = pic18f4610.c
 libdev18f4610_a_CFLAGS = -p18f4610 $(AM_CFLAGS)
@@ -235,6 +287,10 @@ lib_LIBRARIES += libdev18f4685.a
 libdev18f4685_a_SOURCES = pic18f4685.c
 libdev18f4685_a_CFLAGS = -p18f4685 $(AM_CFLAGS)
 
+lib_LIBRARIES += libdev18f46k20.a
+libdev18f46k20_a_SOURCES = pic18f46k20.c
+libdev18f46k20_a_CFLAGS = -p18f46k20 $(AM_CFLAGS)
+
 lib_LIBRARIES += libdev18f6520.a
 libdev18f6520_a_SOURCES = pic18f6520.c
 libdev18f6520_a_CFLAGS = -p18f6520 $(AM_CFLAGS)
@@ -243,6 +299,10 @@ lib_LIBRARIES += libdev18f6585.a
 libdev18f6585_a_SOURCES = pic18f6585.c
 libdev18f6585_a_CFLAGS = -p18f6585 $(AM_CFLAGS)
 
+lib_LIBRARIES += libdev18f65j50.a
+libdev18f65j50_a_SOURCES = pic18f65j50.c
+libdev18f65j50_a_CFLAGS = -p18f65j50 $(AM_CFLAGS)
+
 lib_LIBRARIES += libdev18f6620.a
 libdev18f6620_a_SOURCES = pic18f6620.c
 libdev18f6620_a_CFLAGS = -p18f6620 $(AM_CFLAGS)
@@ -251,6 +311,14 @@ lib_LIBRARIES += libdev18f6680.a
 libdev18f6680_a_SOURCES = pic18f6680.c
 libdev18f6680_a_CFLAGS = -p18f6680 $(AM_CFLAGS)
 
+lib_LIBRARIES += libdev18f66j50.a
+libdev18f66j50_a_SOURCES = pic18f66j50.c
+libdev18f66j50_a_CFLAGS = -p18f66j50 $(AM_CFLAGS)
+
+lib_LIBRARIES += libdev18f66j55.a
+libdev18f66j55_a_SOURCES = pic18f66j55.c
+libdev18f66j55_a_CFLAGS = -p18f66j55 $(AM_CFLAGS)
+
 lib_LIBRARIES += libdev18f66j60.a
 libdev18f66j60_a_SOURCES = pic18f66j60.c
 libdev18f66j60_a_CFLAGS = -p18f66j60 $(AM_CFLAGS)
@@ -263,6 +331,10 @@ lib_LIBRARIES += libdev18f6720.a
 libdev18f6720_a_SOURCES = pic18f6720.c
 libdev18f6720_a_CFLAGS = -p18f6720 $(AM_CFLAGS)
 
+lib_LIBRARIES += libdev18f67j50.a
+libdev18f67j50_a_SOURCES = pic18f67j50.c
+libdev18f67j50_a_CFLAGS = -p18f67j50 $(AM_CFLAGS)
+
 lib_LIBRARIES += libdev18f67j60.a
 libdev18f67j60_a_SOURCES = pic18f67j60.c
 libdev18f67j60_a_CFLAGS = -p18f67j60 $(AM_CFLAGS)
@@ -275,6 +347,10 @@ lib_LIBRARIES += libdev18f8585.a
 libdev18f8585_a_SOURCES = pic18f8585.c
 libdev18f8585_a_CFLAGS = -p18f8585 $(AM_CFLAGS)
 
+lib_LIBRARIES += libdev18f85j50.a
+libdev18f85j50_a_SOURCES = pic18f85j50.c
+libdev18f85j50_a_CFLAGS = -p18f85j50 $(AM_CFLAGS)
+
 lib_LIBRARIES += libdev18f8620.a
 libdev18f8620_a_SOURCES = pic18f8620.c
 libdev18f8620_a_CFLAGS = -p18f8620 $(AM_CFLAGS)
@@ -283,6 +359,14 @@ lib_LIBRARIES += libdev18f8680.a
 libdev18f8680_a_SOURCES = pic18f8680.c
 libdev18f8680_a_CFLAGS = -p18f8680 $(AM_CFLAGS)
 
+lib_LIBRARIES += libdev18f86j50.a
+libdev18f86j50_a_SOURCES = pic18f86j50.c
+libdev18f86j50_a_CFLAGS = -p18f86j50 $(AM_CFLAGS)
+
+lib_LIBRARIES += libdev18f86j55.a
+libdev18f86j55_a_SOURCES = pic18f86j55.c
+libdev18f86j55_a_CFLAGS = -p18f86j55 $(AM_CFLAGS)
+
 lib_LIBRARIES += libdev18f86j60.a
 libdev18f86j60_a_SOURCES = pic18f86j60.c
 libdev18f86j60_a_CFLAGS = -p18f86j60 $(AM_CFLAGS)
@@ -295,6 +379,10 @@ lib_LIBRARIES += libdev18f8720.a
 libdev18f8720_a_SOURCES = pic18f8720.c
 libdev18f8720_a_CFLAGS = -p18f8720 $(AM_CFLAGS)
 
+lib_LIBRARIES += libdev18f87j50.a
+libdev18f87j50_a_SOURCES = pic18f87j50.c
+libdev18f87j50_a_CFLAGS = -p18f87j50 $(AM_CFLAGS)
+
 lib_LIBRARIES += libdev18f87j60.a
 libdev18f87j60_a_SOURCES = pic18f87j60.c
 libdev18f87j60_a_CFLAGS = -p18f87j60 $(AM_CFLAGS)
diff --git a/device/lib/pic16/libdev/pic18f23k20.c b/device/lib/pic16/libdev/pic18f23k20.c
new file mode 100644 (file)
index 0000000..619a86b
--- /dev/null
@@ -0,0 +1,6 @@
+/*
+ * pic18f23k20.c - device specific definitions
+ */
+
+#include "pic18f46k20.c"
+
diff --git a/device/lib/pic16/libdev/pic18f24k20.c b/device/lib/pic16/libdev/pic18f24k20.c
new file mode 100644 (file)
index 0000000..39ca38a
--- /dev/null
@@ -0,0 +1,6 @@
+/*
+ * pic18f24k20.c - device specific definitions
+ */
+
+#include "pic18f46k20.c"
+
diff --git a/device/lib/pic16/libdev/pic18f25k20.c b/device/lib/pic16/libdev/pic18f25k20.c
new file mode 100644 (file)
index 0000000..46024f4
--- /dev/null
@@ -0,0 +1,6 @@
+/*
+ * pic18f25k20.c - device specific definitions
+ */
+
+#include "pic18f46k20.c"
+
diff --git a/device/lib/pic16/libdev/pic18f26k20.c b/device/lib/pic16/libdev/pic18f26k20.c
new file mode 100644 (file)
index 0000000..3836912
--- /dev/null
@@ -0,0 +1,6 @@
+/*
+ * pic18f26k20.c - device specific definitions
+ */
+
+#include "pic18f46k20.c"
+
diff --git a/device/lib/pic16/libdev/pic18f43k20.c b/device/lib/pic16/libdev/pic18f43k20.c
new file mode 100644 (file)
index 0000000..3718ae3
--- /dev/null
@@ -0,0 +1,6 @@
+/*
+ * pic18f43k20.c - device specific definitions
+ */
+
+#include "pic18f46k20.c"
+
diff --git a/device/lib/pic16/libdev/pic18f44k20.c b/device/lib/pic16/libdev/pic18f44k20.c
new file mode 100644 (file)
index 0000000..c7b53ae
--- /dev/null
@@ -0,0 +1,6 @@
+/*
+ * pic18f44k20.c - device specific definitions
+ */
+
+#include "pic18f46k20.c"
+
diff --git a/device/lib/pic16/libdev/pic18f45k20.c b/device/lib/pic16/libdev/pic18f45k20.c
new file mode 100644 (file)
index 0000000..da3d215
--- /dev/null
@@ -0,0 +1,6 @@
+/*
+ * pic18f45k20.c - device specific definitions
+ */
+
+#include "pic18f46k20.c"
+
diff --git a/device/lib/pic16/libdev/pic18f46k20.c b/device/lib/pic16/libdev/pic18f46k20.c
new file mode 100644 (file)
index 0000000..26d272a
--- /dev/null
@@ -0,0 +1,351 @@
+/*
+ * pic18f46k20.c - device specific definitions
+ *
+ * This file is part of the GNU PIC library for SDCC,
+ * originally devised by Vangelis Rokas <vrokas AT otenet.gr>
+ *
+ * It has been automatically generated by inc2h-pic16.pl,
+ * (c) 2007 by Raphael Neider <rneider AT web.de>
+ */
+
+#include <pic18f46k20.h>
+
+
+__sfr __at (0xF77) SSPMSK;
+
+__sfr __at (0xF78) SLRCON;
+volatile __SLRCONbits_t __at (0xF78) SLRCONbits;
+
+__sfr __at (0xF79) CM12CON;
+volatile __CM12CONbits_t __at (0xF79) CM12CONbits;
+
+__sfr __at (0xF7A) CM2CON;
+volatile __CM2CONbits_t __at (0xF7A) CM2CONbits;
+
+__sfr __at (0xF7B) CM1CON;
+volatile __CM1CONbits_t __at (0xF7B) CM1CONbits;
+
+__sfr __at (0xF7C) WPUB;
+volatile __WPUBbits_t __at (0xF7C) WPUBbits;
+
+__sfr __at (0xF7D) IOCB;
+volatile __IOCBbits_t __at (0xF7D) IOCBbits;
+
+__sfr __at (0xF7E) ANSEL;
+volatile __ANSELbits_t __at (0xF7E) ANSELbits;
+
+__sfr __at (0xF7F) ANSELH;
+volatile __ANSELHbits_t __at (0xF7F) ANSELHbits;
+
+__sfr __at (0xF80) PORTA;
+volatile __PORTAbits_t __at (0xF80) PORTAbits;
+
+__sfr __at (0xF81) PORTB;
+volatile __PORTBbits_t __at (0xF81) PORTBbits;
+
+__sfr __at (0xF82) PORTC;
+volatile __PORTCbits_t __at (0xF82) PORTCbits;
+
+__sfr __at (0xF83) PORTD;
+volatile __PORTDbits_t __at (0xF83) PORTDbits;
+
+__sfr __at (0xF84) PORTE;
+volatile __PORTEbits_t __at (0xF84) PORTEbits;
+
+__sfr __at (0xF89) LATA;
+volatile __LATAbits_t __at (0xF89) LATAbits;
+
+__sfr __at (0xF8A) LATB;
+volatile __LATBbits_t __at (0xF8A) LATBbits;
+
+__sfr __at (0xF8B) LATC;
+volatile __LATCbits_t __at (0xF8B) LATCbits;
+
+__sfr __at (0xF8C) LATD;
+volatile __LATDbits_t __at (0xF8C) LATDbits;
+
+__sfr __at (0xF8D) LATE;
+volatile __LATEbits_t __at (0xF8D) LATEbits;
+
+__sfr __at (0xF92) DDRA;
+volatile __DDRAbits_t __at (0xF92) DDRAbits;
+
+__sfr __at (0xF92) TRISA;
+volatile __TRISAbits_t __at (0xF92) TRISAbits;
+
+__sfr __at (0xF93) DDRB;
+volatile __DDRBbits_t __at (0xF93) DDRBbits;
+
+__sfr __at (0xF93) TRISB;
+volatile __TRISBbits_t __at (0xF93) TRISBbits;
+
+__sfr __at (0xF94) DDRC;
+volatile __DDRCbits_t __at (0xF94) DDRCbits;
+
+__sfr __at (0xF94) TRISC;
+volatile __TRISCbits_t __at (0xF94) TRISCbits;
+
+__sfr __at (0xF95) DDRD;
+volatile __DDRDbits_t __at (0xF95) DDRDbits;
+
+__sfr __at (0xF95) TRISD;
+volatile __TRISDbits_t __at (0xF95) TRISDbits;
+
+__sfr __at (0xF96) DDRE;
+volatile __DDREbits_t __at (0xF96) DDREbits;
+
+__sfr __at (0xF96) TRISE;
+volatile __TRISEbits_t __at (0xF96) TRISEbits;
+
+__sfr __at (0xF9B) OSCTUNE;
+volatile __OSCTUNEbits_t __at (0xF9B) OSCTUNEbits;
+
+__sfr __at (0xF9D) PIE1;
+volatile __PIE1bits_t __at (0xF9D) PIE1bits;
+
+__sfr __at (0xF9E) PIR1;
+volatile __PIR1bits_t __at (0xF9E) PIR1bits;
+
+__sfr __at (0xF9F) IPR1;
+volatile __IPR1bits_t __at (0xF9F) IPR1bits;
+
+__sfr __at (0xFA0) PIE2;
+volatile __PIE2bits_t __at (0xFA0) PIE2bits;
+
+__sfr __at (0xFA1) PIR2;
+volatile __PIR2bits_t __at (0xFA1) PIR2bits;
+
+__sfr __at (0xFA2) IPR2;
+volatile __IPR2bits_t __at (0xFA2) IPR2bits;
+
+__sfr __at (0xFA6) EECON1;
+volatile __EECON1bits_t __at (0xFA6) EECON1bits;
+
+__sfr __at (0xFA7) EECON2;
+
+__sfr __at (0xFA8) EEDATA;
+
+__sfr __at (0xFA9) EEADR;
+
+__sfr __at (0xFAA) EEADRH;
+
+__sfr __at (0xFAB) RCSTA;
+volatile __RCSTAbits_t __at (0xFAB) RCSTAbits;
+
+__sfr __at (0xFAC) TXSTA;
+volatile __TXSTAbits_t __at (0xFAC) TXSTAbits;
+
+__sfr __at (0xFAD) TXREG;
+
+__sfr __at (0xFAE) RCREG;
+
+__sfr __at (0xFAF) SPBRG;
+
+__sfr __at (0xFB0) SPBRGH;
+
+__sfr __at (0xFB1) T3CON;
+volatile __T3CONbits_t __at (0xFB1) T3CONbits;
+
+__sfr __at (0xFB2) TMR3L;
+
+__sfr __at (0xFB3) TMR3H;
+
+__sfr __at (0xFB4) CVRCON2;
+volatile __CVRCON2bits_t __at (0xFB4) CVRCON2bits;
+
+__sfr __at (0xFB5) CVRCON;
+volatile __CVRCONbits_t __at (0xFB5) CVRCONbits;
+
+__sfr __at (0xFB6) ECCP1AS;
+volatile __ECCP1ASbits_t __at (0xFB6) ECCP1ASbits;
+
+__sfr __at (0xFB7) PWM1CON;
+volatile __PWM1CONbits_t __at (0xFB7) PWM1CONbits;
+
+__sfr __at (0xFB8) BAUDCON;
+volatile __BAUDCONbits_t __at (0xFB8) BAUDCONbits;
+
+__sfr __at (0xFB8) BAUDCTL;
+volatile __BAUDCTLbits_t __at (0xFB8) BAUDCTLbits;
+
+__sfr __at (0xFB9) PSTRCON;
+volatile __PSTRCONbits_t __at (0xFB9) PSTRCONbits;
+
+__sfr __at (0xFBA) CCP2CON;
+volatile __CCP2CONbits_t __at (0xFBA) CCP2CONbits;
+
+__sfr __at (0xFBB) CCPR2;
+
+__sfr __at (0xFBB) CCPR2L;
+
+__sfr __at (0xFBC) CCPR2H;
+
+__sfr __at (0xFBD) CCP1CON;
+volatile __CCP1CONbits_t __at (0xFBD) CCP1CONbits;
+
+__sfr __at (0xFBE) CCPR1;
+
+__sfr __at (0xFBE) CCPR1L;
+
+__sfr __at (0xFBF) CCPR1H;
+
+__sfr __at (0xFC0) ADCON2;
+volatile __ADCON2bits_t __at (0xFC0) ADCON2bits;
+
+__sfr __at (0xFC1) ADCON1;
+volatile __ADCON1bits_t __at (0xFC1) ADCON1bits;
+
+__sfr __at (0xFC2) ADCON0;
+volatile __ADCON0bits_t __at (0xFC2) ADCON0bits;
+
+__sfr __at (0xFC3) ADRES;
+
+__sfr __at (0xFC3) ADRESL;
+
+__sfr __at (0xFC4) ADRESH;
+
+__sfr __at (0xFC5) SSPCON2;
+volatile __SSPCON2bits_t __at (0xFC5) SSPCON2bits;
+
+__sfr __at (0xFC6) SSPCON1;
+volatile __SSPCON1bits_t __at (0xFC6) SSPCON1bits;
+
+__sfr __at (0xFC7) SSPSTAT;
+volatile __SSPSTATbits_t __at (0xFC7) SSPSTATbits;
+
+__sfr __at (0xFC8) SSPADD;
+
+__sfr __at (0xFC9) SSPBUF;
+
+__sfr __at (0xFCA) T2CON;
+volatile __T2CONbits_t __at (0xFCA) T2CONbits;
+
+__sfr __at (0xFCB) PR2;
+
+__sfr __at (0xFCC) TMR2;
+
+__sfr __at (0xFCD) T1CON;
+volatile __T1CONbits_t __at (0xFCD) T1CONbits;
+
+__sfr __at (0xFCE) TMR1L;
+
+__sfr __at (0xFCF) TMR1H;
+
+__sfr __at (0xFD0) RCON;
+volatile __RCONbits_t __at (0xFD0) RCONbits;
+
+__sfr __at (0xFD1) WDTCON;
+volatile __WDTCONbits_t __at (0xFD1) WDTCONbits;
+
+__sfr __at (0xFD2) HLVDCON;
+volatile __HLVDCONbits_t __at (0xFD2) HLVDCONbits;
+
+__sfr __at (0xFD2) LVDCON;
+volatile __LVDCONbits_t __at (0xFD2) LVDCONbits;
+
+__sfr __at (0xFD3) OSCCON;
+volatile __OSCCONbits_t __at (0xFD3) OSCCONbits;
+
+__sfr __at (0xFD4) DEBUG;
+
+__sfr __at (0xFD5) T0CON;
+volatile __T0CONbits_t __at (0xFD5) T0CONbits;
+
+__sfr __at (0xFD6) TMR0L;
+
+__sfr __at (0xFD7) TMR0H;
+
+__sfr __at (0xFD8) STATUS;
+volatile __STATUSbits_t __at (0xFD8) STATUSbits;
+
+__sfr __at (0xFD9) FSR2L;
+
+__sfr __at (0xFDA) FSR2H;
+
+__sfr __at (0xFDB) PLUSW2;
+
+__sfr __at (0xFDC) PREINC2;
+
+__sfr __at (0xFDD) POSTDEC2;
+
+__sfr __at (0xFDE) POSTINC2;
+
+__sfr __at (0xFDF) INDF2;
+
+__sfr __at (0xFE0) BSR;
+
+__sfr __at (0xFE1) FSR1L;
+
+__sfr __at (0xFE2) FSR1H;
+
+__sfr __at (0xFE3) PLUSW1;
+
+__sfr __at (0xFE4) PREINC1;
+
+__sfr __at (0xFE5) POSTDEC1;
+
+__sfr __at (0xFE6) POSTINC1;
+
+__sfr __at (0xFE7) INDF1;
+
+__sfr __at (0xFE8) WREG;
+
+__sfr __at (0xFE9) FSR0L;
+
+__sfr __at (0xFEA) FSR0H;
+
+__sfr __at (0xFEB) PLUSW0;
+
+__sfr __at (0xFEC) PREINC0;
+
+__sfr __at (0xFED) POSTDEC0;
+
+__sfr __at (0xFEE) POSTINC0;
+
+__sfr __at (0xFEF) INDF0;
+
+__sfr __at (0xFF0) INTCON3;
+volatile __INTCON3bits_t __at (0xFF0) INTCON3bits;
+
+__sfr __at (0xFF1) INTCON2;
+volatile __INTCON2bits_t __at (0xFF1) INTCON2bits;
+
+__sfr __at (0xFF2) INTCON;
+volatile __INTCONbits_t __at (0xFF2) INTCONbits;
+
+__sfr __at (0xFF3) PROD;
+
+__sfr __at (0xFF3) PRODL;
+
+__sfr __at (0xFF4) PRODH;
+
+__sfr __at (0xFF5) TABLAT;
+
+__sfr __at (0xFF6) TBLPTR;
+
+__sfr __at (0xFF6) TBLPTRL;
+
+__sfr __at (0xFF7) TBLPTRH;
+
+__sfr __at (0xFF8) TBLPTRU;
+
+__sfr __at (0xFF9) PC;
+
+__sfr __at (0xFF9) PCL;
+
+__sfr __at (0xFFA) PCLATH;
+
+__sfr __at (0xFFB) PCLATU;
+
+__sfr __at (0xFFC) STKPTR;
+volatile __STKPTRbits_t __at (0xFFC) STKPTRbits;
+
+__sfr __at (0xFFD) TOS;
+
+__sfr __at (0xFFD) TOSL;
+
+__sfr __at (0xFFE) TOSH;
+
+__sfr __at (0xFFF) TOSU;
+
+
diff --git a/device/lib/pic16/libdev/pic18f65j50.c b/device/lib/pic16/libdev/pic18f65j50.c
new file mode 100644 (file)
index 0000000..b05410a
--- /dev/null
@@ -0,0 +1,7 @@
+/*
+ * pic18f65j50.c - device specific definitions
+ */
+
+#include <pic18f65j50.h>
+#include "pic18f67j50.c"
+
diff --git a/device/lib/pic16/libdev/pic18f66j50.c b/device/lib/pic16/libdev/pic18f66j50.c
new file mode 100644 (file)
index 0000000..8cb2196
--- /dev/null
@@ -0,0 +1,7 @@
+/*
+ * pic18f66j50.c - device specific definitions
+ */
+
+#include <pic18f66j50.h>
+#include "pic18f67j50.c"
+
diff --git a/device/lib/pic16/libdev/pic18f66j55.c b/device/lib/pic16/libdev/pic18f66j55.c
new file mode 100644 (file)
index 0000000..a20cca9
--- /dev/null
@@ -0,0 +1,7 @@
+/*
+ * pic18f66j55.c - device specific definitions
+ */
+
+#include <pic18f66j55.h>
+#include "pic18f67j50.c"
+
diff --git a/device/lib/pic16/libdev/pic18f67j50.c b/device/lib/pic16/libdev/pic18f67j50.c
new file mode 100644 (file)
index 0000000..816ecd5
--- /dev/null
@@ -0,0 +1,634 @@
+/*
+ * pic18f67j50.c - device specific definitions
+ *
+ * This file is part of the GNU PIC library for SDCC,
+ * originally devised by Vangelis Rokas <vrokas AT otenet.gr>
+ *
+ * It has been automatically generated by inc2h-pic16.pl,
+ * (c) 2007 by Raphael Neider <rneider AT web.de>
+ */
+
+#include <pic18f67j50.h>
+
+
+__sfr __at (0xF40) PMSTAT;
+
+__sfr __at (0xF40) PMSTATL;
+volatile __PMSTATLbits_t __at (0xF40) PMSTATLbits;
+
+__sfr __at (0xF41) PMSTATH;
+volatile __PMSTATHbits_t __at (0xF41) PMSTATHbits;
+
+__sfr __at (0xF42) PMEL;
+volatile __PMELbits_t __at (0xF42) PMELbits;
+
+__sfr __at (0xF42) PMEN;
+
+__sfr __at (0xF43) PMEH;
+volatile __PMEHbits_t __at (0xF43) PMEHbits;
+
+__sfr __at (0xF44) PMDIN2;
+
+__sfr __at (0xF44) PMDIN2L;
+
+__sfr __at (0xF45) PMDIN2H;
+
+__sfr __at (0xF46) PMDOUT2;
+
+__sfr __at (0xF46) PMDOUT2L;
+
+__sfr __at (0xF47) PMDOUT2H;
+
+__sfr __at (0xF48) PMMODE;
+
+__sfr __at (0xF48) PMMODEL;
+volatile __PMMODELbits_t __at (0xF48) PMMODELbits;
+
+__sfr __at (0xF49) PMMODEH;
+volatile __PMMODEHbits_t __at (0xF49) PMMODEHbits;
+
+__sfr __at (0xF4A) PMCON;
+
+__sfr __at (0xF4A) PMCONL;
+volatile __PMCONLbits_t __at (0xF4A) PMCONLbits;
+
+__sfr __at (0xF4B) PMCONH;
+volatile __PMCONHbits_t __at (0xF4B) PMCONHbits;
+
+__sfr __at (0xF4C) UEP0;
+volatile __UEP0bits_t __at (0xF4C) UEP0bits;
+
+__sfr __at (0xF4D) UEP1;
+volatile __UEP1bits_t __at (0xF4D) UEP1bits;
+
+__sfr __at (0xF4E) UEP2;
+volatile __UEP2bits_t __at (0xF4E) UEP2bits;
+
+__sfr __at (0xF4F) UEP3;
+volatile __UEP3bits_t __at (0xF4F) UEP3bits;
+
+__sfr __at (0xF50) UEP4;
+volatile __UEP4bits_t __at (0xF50) UEP4bits;
+
+__sfr __at (0xF51) UEP5;
+volatile __UEP5bits_t __at (0xF51) UEP5bits;
+
+__sfr __at (0xF52) UEP6;
+volatile __UEP6bits_t __at (0xF52) UEP6bits;
+
+__sfr __at (0xF53) UEP7;
+volatile __UEP7bits_t __at (0xF53) UEP7bits;
+
+__sfr __at (0xF54) UEP8;
+volatile __UEP8bits_t __at (0xF54) UEP8bits;
+
+__sfr __at (0xF55) UEP9;
+volatile __UEP9bits_t __at (0xF55) UEP9bits;
+
+__sfr __at (0xF56) UEP10;
+volatile __UEP10bits_t __at (0xF56) UEP10bits;
+
+__sfr __at (0xF57) UEP11;
+volatile __UEP11bits_t __at (0xF57) UEP11bits;
+
+__sfr __at (0xF58) UEP12;
+volatile __UEP12bits_t __at (0xF58) UEP12bits;
+
+__sfr __at (0xF59) UEP13;
+volatile __UEP13bits_t __at (0xF59) UEP13bits;
+
+__sfr __at (0xF5A) UEP14;
+volatile __UEP14bits_t __at (0xF5A) UEP14bits;
+
+__sfr __at (0xF5B) UEP15;
+volatile __UEP15bits_t __at (0xF5B) UEP15bits;
+
+__sfr __at (0xF5C) UIE;
+volatile __UIEbits_t __at (0xF5C) UIEbits;
+
+__sfr __at (0xF5D) UEIE;
+volatile __UEIEbits_t __at (0xF5D) UEIEbits;
+
+__sfr __at (0xF5E) UADDR;
+volatile __UADDRbits_t __at (0xF5E) UADDRbits;
+
+__sfr __at (0xF5F) UCFG;
+volatile __UCFGbits_t __at (0xF5F) UCFGbits;
+
+__sfr __at (0xF60) UFRM;
+
+__sfr __at (0xF60) UFRML;
+volatile __UFRMLbits_t __at (0xF60) UFRMLbits;
+
+__sfr __at (0xF61) UFRMH;
+volatile __UFRMHbits_t __at (0xF61) UFRMHbits;
+
+__sfr __at (0xF62) UIR;
+volatile __UIRbits_t __at (0xF62) UIRbits;
+
+__sfr __at (0xF63) UEIR;
+volatile __UEIRbits_t __at (0xF63) UEIRbits;
+
+__sfr __at (0xF64) USTAT;
+volatile __USTATbits_t __at (0xF64) USTATbits;
+
+__sfr __at (0xF65) UCON;
+volatile __UCONbits_t __at (0xF65) UCONbits;
+
+__sfr __at (0xF66) PMDIN1;
+
+__sfr __at (0xF66) PMDIN1L;
+
+__sfr __at (0xF67) PMDIN1H;
+
+__sfr __at (0xF68) PMADDR;
+
+__sfr __at (0xF68) PMADDRL;
+
+__sfr __at (0xF68) PMDOUT1;
+
+__sfr __at (0xF68) PMDOUT1L;
+
+__sfr __at (0xF69) PMADDRH;
+volatile __PMADDRHbits_t __at (0xF69) PMADDRHbits;
+
+__sfr __at (0xF69) PMDOUT1H;
+
+__sfr __at (0xF6A) CMSTAT;
+volatile __CMSTATbits_t __at (0xF6A) CMSTATbits;
+
+__sfr __at (0xF6A) CMSTATUS;
+volatile __CMSTATUSbits_t __at (0xF6A) CMSTATUSbits;
+
+__sfr __at (0xF6B) SSP2CON2;
+volatile __SSP2CON2bits_t __at (0xF6B) SSP2CON2bits;
+
+__sfr __at (0xF6C) SSP2CON1;
+volatile __SSP2CON1bits_t __at (0xF6C) SSP2CON1bits;
+
+__sfr __at (0xF6D) SSP2STAT;
+volatile __SSP2STATbits_t __at (0xF6D) SSP2STATbits;
+
+__sfr __at (0xF6E) SSP2ADD;
+
+__sfr __at (0xF6E) SSP2MSK;
+volatile __SSP2MSKbits_t __at (0xF6E) SSP2MSKbits;
+
+__sfr __at (0xF6F) SSP2BUF;
+
+__sfr __at (0xF70) CCP5CON;
+volatile __CCP5CONbits_t __at (0xF70) CCP5CONbits;
+
+__sfr __at (0xF71) CCPR5;
+
+__sfr __at (0xF71) CCPR5L;
+
+__sfr __at (0xF72) CCPR5H;
+
+__sfr __at (0xF73) CCP4CON;
+volatile __CCP4CONbits_t __at (0xF73) CCP4CONbits;
+
+__sfr __at (0xF74) CCPR4;
+
+__sfr __at (0xF74) CCPR4L;
+
+__sfr __at (0xF75) CCPR4H;
+
+__sfr __at (0xF76) T4CON;
+volatile __T4CONbits_t __at (0xF76) T4CONbits;
+
+__sfr __at (0xF77) CVRCON;
+volatile __CVRCONbits_t __at (0xF77) CVRCONbits;
+
+__sfr __at (0xF77) PR4;
+
+__sfr __at (0xF78) TMR4;
+
+__sfr __at (0xF79) T3CON;
+volatile __T3CONbits_t __at (0xF79) T3CONbits;
+
+__sfr __at (0xF7A) TMR3L;
+
+__sfr __at (0xF7B) TMR3H;
+
+__sfr __at (0xF7C) BAUDCON2;
+volatile __BAUDCON2bits_t __at (0xF7C) BAUDCON2bits;
+
+__sfr __at (0xF7D) SPBRGH2;
+
+__sfr __at (0xF7E) BAUDCON;
+volatile __BAUDCONbits_t __at (0xF7E) BAUDCONbits;
+
+__sfr __at (0xF7E) BAUDCON1;
+volatile __BAUDCON1bits_t __at (0xF7E) BAUDCON1bits;
+
+__sfr __at (0xF7F) SPBRGH;
+
+__sfr __at (0xF7F) SPBRGH1;
+
+__sfr __at (0xF80) PORTA;
+volatile __PORTAbits_t __at (0xF80) PORTAbits;
+
+__sfr __at (0xF81) PORTB;
+volatile __PORTBbits_t __at (0xF81) PORTBbits;
+
+__sfr __at (0xF82) PORTC;
+volatile __PORTCbits_t __at (0xF82) PORTCbits;
+
+__sfr __at (0xF83) PORTD;
+volatile __PORTDbits_t __at (0xF83) PORTDbits;
+
+__sfr __at (0xF84) PORTE;
+volatile __PORTEbits_t __at (0xF84) PORTEbits;
+
+__sfr __at (0xF85) PORTF;
+volatile __PORTFbits_t __at (0xF85) PORTFbits;
+
+__sfr __at (0xF86) PORTG;
+volatile __PORTGbits_t __at (0xF86) PORTGbits;
+
+__sfr __at (0xF89) LATA;
+volatile __LATAbits_t __at (0xF89) LATAbits;
+
+__sfr __at (0xF8A) LATB;
+volatile __LATBbits_t __at (0xF8A) LATBbits;
+
+__sfr __at (0xF8B) LATC;
+volatile __LATCbits_t __at (0xF8B) LATCbits;
+
+__sfr __at (0xF8C) LATD;
+volatile __LATDbits_t __at (0xF8C) LATDbits;
+
+__sfr __at (0xF8D) LATE;
+volatile __LATEbits_t __at (0xF8D) LATEbits;
+
+__sfr __at (0xF8E) LATF;
+volatile __LATFbits_t __at (0xF8E) LATFbits;
+
+__sfr __at (0xF8F) LATG;
+volatile __LATGbits_t __at (0xF8F) LATGbits;
+
+__sfr __at (0xF92) DDRA;
+volatile __DDRAbits_t __at (0xF92) DDRAbits;
+
+__sfr __at (0xF92) TRISA;
+volatile __TRISAbits_t __at (0xF92) TRISAbits;
+
+__sfr __at (0xF93) DDRB;
+volatile __DDRBbits_t __at (0xF93) DDRBbits;
+
+__sfr __at (0xF93) TRISB;
+volatile __TRISBbits_t __at (0xF93) TRISBbits;
+
+__sfr __at (0xF94) DDRC;
+volatile __DDRCbits_t __at (0xF94) DDRCbits;
+
+__sfr __at (0xF94) TRISC;
+volatile __TRISCbits_t __at (0xF94) TRISCbits;
+
+__sfr __at (0xF95) DDRD;
+volatile __DDRDbits_t __at (0xF95) DDRDbits;
+
+__sfr __at (0xF95) TRISD;
+volatile __TRISDbits_t __at (0xF95) TRISDbits;
+
+__sfr __at (0xF96) DDRE;
+volatile __DDREbits_t __at (0xF96) DDREbits;
+
+__sfr __at (0xF96) TRISE;
+volatile __TRISEbits_t __at (0xF96) TRISEbits;
+
+__sfr __at (0xF97) DDRF;
+volatile __DDRFbits_t __at (0xF97) DDRFbits;
+
+__sfr __at (0xF97) TRISF;
+volatile __TRISFbits_t __at (0xF97) TRISFbits;
+
+__sfr __at (0xF98) DDRG;
+volatile __DDRGbits_t __at (0xF98) DDRGbits;
+
+__sfr __at (0xF98) TRISG;
+volatile __TRISGbits_t __at (0xF98) TRISGbits;
+
+__sfr __at (0xF9B) OSCTUNE;
+volatile __OSCTUNEbits_t __at (0xF9B) OSCTUNEbits;
+
+__sfr __at (0xF9C) RCSTA2;
+volatile __RCSTA2bits_t __at (0xF9C) RCSTA2bits;
+
+__sfr __at (0xF9D) PIE1;
+volatile __PIE1bits_t __at (0xF9D) PIE1bits;
+
+__sfr __at (0xF9E) PIR1;
+volatile __PIR1bits_t __at (0xF9E) PIR1bits;
+
+__sfr __at (0xF9F) IPR1;
+volatile __IPR1bits_t __at (0xF9F) IPR1bits;
+
+__sfr __at (0xFA0) PIE2;
+volatile __PIE2bits_t __at (0xFA0) PIE2bits;
+
+__sfr __at (0xFA1) PIR2;
+volatile __PIR2bits_t __at (0xFA1) PIR2bits;
+
+__sfr __at (0xFA2) IPR2;
+volatile __IPR2bits_t __at (0xFA2) IPR2bits;
+
+__sfr __at (0xFA3) PIE3;
+volatile __PIE3bits_t __at (0xFA3) PIE3bits;
+
+__sfr __at (0xFA4) PIR3;
+volatile __PIR3bits_t __at (0xFA4) PIR3bits;
+
+__sfr __at (0xFA5) IPR3;
+volatile __IPR3bits_t __at (0xFA5) IPR3bits;
+
+__sfr __at (0xFA6) EECON1;
+volatile __EECON1bits_t __at (0xFA6) EECON1bits;
+
+__sfr __at (0xFA7) EECON2;
+
+__sfr __at (0xFA8) TXSTA2;
+volatile __TXSTA2bits_t __at (0xFA8) TXSTA2bits;
+
+__sfr __at (0xFA9) TXREG2;
+
+__sfr __at (0xFAA) RCREG2;
+
+__sfr __at (0xFAB) SPBRG2;
+
+__sfr __at (0xFAC) RCSTA;
+volatile __RCSTAbits_t __at (0xFAC) RCSTAbits;
+
+__sfr __at (0xFAC) RCSTA1;
+volatile __RCSTA1bits_t __at (0xFAC) RCSTA1bits;
+
+__sfr __at (0xFAD) TXSTA;
+volatile __TXSTAbits_t __at (0xFAD) TXSTAbits;
+
+__sfr __at (0xFAD) TXSTA1;
+volatile __TXSTA1bits_t __at (0xFAD) TXSTA1bits;
+
+__sfr __at (0xFAE) TXREG;
+
+__sfr __at (0xFAE) TXREG1;
+
+__sfr __at (0xFAF) RCREG;
+
+__sfr __at (0xFAF) RCREG1;
+
+__sfr __at (0xFB0) SPBRG;
+
+__sfr __at (0xFB0) SPBRG1;
+
+__sfr __at (0xFB1) CCP3CON;
+volatile __CCP3CONbits_t __at (0xFB1) CCP3CONbits;
+
+__sfr __at (0xFB1) ECCP3CON;
+volatile __ECCP3CONbits_t __at (0xFB1) ECCP3CONbits;
+
+__sfr __at (0xFB2) CCPR3;
+
+__sfr __at (0xFB2) CCPR3L;
+
+__sfr __at (0xFB3) CCPR3H;
+
+__sfr __at (0xFB4) ECCP3DEL;
+volatile __ECCP3DELbits_t __at (0xFB4) ECCP3DELbits;
+
+__sfr __at (0xFB5) ECCP3AS;
+volatile __ECCP3ASbits_t __at (0xFB5) ECCP3ASbits;
+
+__sfr __at (0xFB6) CCP2CON;
+volatile __CCP2CONbits_t __at (0xFB6) CCP2CONbits;
+
+__sfr __at (0xFB6) ECCP2CON;
+volatile __ECCP2CONbits_t __at (0xFB6) ECCP2CONbits;
+
+__sfr __at (0xFB7) CCPR2;
+
+__sfr __at (0xFB7) CCPR2L;
+
+__sfr __at (0xFB8) CCPR2H;
+
+__sfr __at (0xFB9) ECCP2DEL;
+volatile __ECCP2DELbits_t __at (0xFB9) ECCP2DELbits;
+
+__sfr __at (0xFBA) ECCP2AS;
+volatile __ECCP2ASbits_t __at (0xFBA) ECCP2ASbits;
+
+__sfr __at (0xFBB) CCP1CON;
+volatile __CCP1CONbits_t __at (0xFBB) CCP1CONbits;
+
+__sfr __at (0xFBB) ECCP1CON;
+volatile __ECCP1CONbits_t __at (0xFBB) ECCP1CONbits;
+
+__sfr __at (0xFBC) CCPR1;
+
+__sfr __at (0xFBC) CCPR1L;
+
+__sfr __at (0xFBD) CCPR1H;
+
+__sfr __at (0xFBE) ECCP1DEL;
+volatile __ECCP1DELbits_t __at (0xFBE) ECCP1DELbits;
+
+__sfr __at (0xFBF) ECCP1AS;
+volatile __ECCP1ASbits_t __at (0xFBF) ECCP1ASbits;
+
+__sfr __at (0xFC0) WDTCON;
+volatile __WDTCONbits_t __at (0xFC0) WDTCONbits;
+
+__sfr __at (0xFC1) ADCON1;
+volatile __ADCON1bits_t __at (0xFC1) ADCON1bits;
+
+__sfr __at (0xFC1) ANCON0;
+volatile __ANCON0bits_t __at (0xFC1) ANCON0bits;
+
+__sfr __at (0xFC2) ADCON0;
+volatile __ADCON0bits_t __at (0xFC2) ADCON0bits;
+
+__sfr __at (0xFC2) ANCON1;
+volatile __ANCON1bits_t __at (0xFC2) ANCON1bits;
+
+__sfr __at (0xFC3) ADRES;
+
+__sfr __at (0xFC3) ADRESL;
+
+__sfr __at (0xFC4) ADRESH;
+
+__sfr __at (0xFC5) SSP1CON2;
+volatile __SSP1CON2bits_t __at (0xFC5) SSP1CON2bits;
+
+__sfr __at (0xFC5) SSPCON2;
+volatile __SSPCON2bits_t __at (0xFC5) SSPCON2bits;
+
+__sfr __at (0xFC6) SSP1CON1;
+volatile __SSP1CON1bits_t __at (0xFC6) SSP1CON1bits;
+
+__sfr __at (0xFC6) SSPCON1;
+volatile __SSPCON1bits_t __at (0xFC6) SSPCON1bits;
+
+__sfr __at (0xFC7) SSP1STAT;
+volatile __SSP1STATbits_t __at (0xFC7) SSP1STATbits;
+
+__sfr __at (0xFC7) SSPSTAT;
+volatile __SSPSTATbits_t __at (0xFC7) SSPSTATbits;
+
+__sfr __at (0xFC8) SSP1ADD;
+
+__sfr __at (0xFC8) SSP1MSK;
+
+__sfr __at (0xFC8) SSPADD;
+
+__sfr __at (0xFC9) SSP1BUF;
+
+__sfr __at (0xFC9) SSPBUF;
+
+__sfr __at (0xFCA) T2CON;
+volatile __T2CONbits_t __at (0xFCA) T2CONbits;
+
+__sfr __at (0xFCB) PR2;
+
+__sfr __at (0xFCC) PADCFG1;
+volatile __PADCFG1bits_t __at (0xFCC) PADCFG1bits;
+
+__sfr __at (0xFCC) TMR2;
+
+__sfr __at (0xFCD) ODCON3;
+volatile __ODCON3bits_t __at (0xFCD) ODCON3bits;
+
+__sfr __at (0xFCD) T1CON;
+volatile __T1CONbits_t __at (0xFCD) T1CONbits;
+
+__sfr __at (0xFCE) ODCON2;
+volatile __ODCON2bits_t __at (0xFCE) ODCON2bits;
+
+__sfr __at (0xFCE) TMR1L;
+
+__sfr __at (0xFCF) ODCON1;
+volatile __ODCON1bits_t __at (0xFCF) ODCON1bits;
+
+__sfr __at (0xFCF) TMR1H;
+
+__sfr __at (0xFD0) RCON;
+volatile __RCONbits_t __at (0xFD0) RCONbits;
+
+__sfr __at (0xFD1) CM2CON;
+volatile __CM2CONbits_t __at (0xFD1) CM2CONbits;
+
+__sfr __at (0xFD1) CM2CON1;
+volatile __CM2CON1bits_t __at (0xFD1) CM2CON1bits;
+
+__sfr __at (0xFD2) CM1CON;
+volatile __CM1CONbits_t __at (0xFD2) CM1CONbits;
+
+__sfr __at (0xFD2) CM1CON1;
+volatile __CM1CON1bits_t __at (0xFD2) CM1CON1bits;
+
+__sfr __at (0xFD3) OSCCON;
+volatile __OSCCONbits_t __at (0xFD3) OSCCONbits;
+
+__sfr __at (0xFD3) REFOCON;
+volatile __REFOCONbits_t __at (0xFD3) REFOCONbits;
+
+__sfr __at (0xFD5) T0CON;
+volatile __T0CONbits_t __at (0xFD5) T0CONbits;
+
+__sfr __at (0xFD6) TMR0L;
+
+__sfr __at (0xFD7) TMR0H;
+
+__sfr __at (0xFD8) STATUS;
+volatile __STATUSbits_t __at (0xFD8) STATUSbits;
+
+__sfr __at (0xFD9) FSR2L;
+
+__sfr __at (0xFDA) FSR2H;
+
+__sfr __at (0xFDB) PLUSW2;
+
+__sfr __at (0xFDC) PREINC2;
+
+__sfr __at (0xFDD) POSTDEC2;
+
+__sfr __at (0xFDE) POSTINC2;
+
+__sfr __at (0xFDF) INDF2;
+
+__sfr __at (0xFE0) BSR;
+
+__sfr __at (0xFE1) FSR1L;
+
+__sfr __at (0xFE2) FSR1H;
+
+__sfr __at (0xFE3) PLUSW1;
+
+__sfr __at (0xFE4) PREINC1;
+
+__sfr __at (0xFE5) POSTDEC1;
+
+__sfr __at (0xFE6) POSTINC1;
+
+__sfr __at (0xFE7) INDF1;
+
+__sfr __at (0xFE8) WREG;
+
+__sfr __at (0xFE9) FSR0L;
+
+__sfr __at (0xFEA) FSR0H;
+
+__sfr __at (0xFEB) PLUSW0;
+
+__sfr __at (0xFEC) PREINC0;
+
+__sfr __at (0xFED) POSTDEC0;
+
+__sfr __at (0xFEE) POSTINC0;
+
+__sfr __at (0xFEF) INDF0;
+
+__sfr __at (0xFF0) INTCON3;
+volatile __INTCON3bits_t __at (0xFF0) INTCON3bits;
+
+__sfr __at (0xFF1) INTCON2;
+volatile __INTCON2bits_t __at (0xFF1) INTCON2bits;
+
+__sfr __at (0xFF2) INTCON;
+volatile __INTCONbits_t __at (0xFF2) INTCONbits;
+
+__sfr __at (0xFF3) PROD;
+
+__sfr __at (0xFF3) PRODL;
+
+__sfr __at (0xFF4) PRODH;
+
+__sfr __at (0xFF5) TABLAT;
+
+__sfr __at (0xFF6) TBLPTR;
+
+__sfr __at (0xFF6) TBLPTRL;
+
+__sfr __at (0xFF7) TBLPTRH;
+
+__sfr __at (0xFF8) TBLPTRU;
+
+__sfr __at (0xFF9) PC;
+
+__sfr __at (0xFF9) PCL;
+
+__sfr __at (0xFFA) PCLATH;
+
+__sfr __at (0xFFB) PCLATU;
+
+__sfr __at (0xFFC) STKPTR;
+volatile __STKPTRbits_t __at (0xFFC) STKPTRbits;
+
+__sfr __at (0xFFD) TOS;
+
+__sfr __at (0xFFD) TOSL;
+
+__sfr __at (0xFFE) TOSH;
+
+__sfr __at (0xFFF) TOSU;
+
+
diff --git a/device/lib/pic16/libdev/pic18f85j50.c b/device/lib/pic16/libdev/pic18f85j50.c
new file mode 100644 (file)
index 0000000..6116d03
--- /dev/null
@@ -0,0 +1,7 @@
+/*
+ * pic18f85j50.c - device specific definitions
+ */
+
+#include <pic18f85j50.h>
+#include "pic18f87j50.c"
+
diff --git a/device/lib/pic16/libdev/pic18f86j50.c b/device/lib/pic16/libdev/pic18f86j50.c
new file mode 100644 (file)
index 0000000..d5bcabb
--- /dev/null
@@ -0,0 +1,7 @@
+/*
+ * pic18f86j50.c - device specific definitions
+ */
+
+#include <pic18f86j50.h>
+#include "pic18f87j50.c"
+
diff --git a/device/lib/pic16/libdev/pic18f86j55.c b/device/lib/pic16/libdev/pic18f86j55.c
new file mode 100644 (file)
index 0000000..4a48bb8
--- /dev/null
@@ -0,0 +1,7 @@
+/*
+ * pic18f86j55.c - device specific definitions
+ */
+
+#include <pic18f86j55.h>
+#include "pic18f87j50.c"
+
diff --git a/device/lib/pic16/libdev/pic18f87j50.c b/device/lib/pic16/libdev/pic18f87j50.c
new file mode 100644 (file)
index 0000000..0c6d5cf
--- /dev/null
@@ -0,0 +1,661 @@
+/*
+ * pic18f87j50.c - device specific definitions
+ *
+ * This file is part of the GNU PIC library for SDCC,
+ * originally devised by Vangelis Rokas <vrokas AT otenet.gr>
+ *
+ * It has been automatically generated by inc2h-pic16.pl,
+ * (c) 2007 by Raphael Neider <rneider AT web.de>
+ */
+
+#include <pic18f87j50.h>
+
+
+__sfr __at (0xF40) PMSTAT;
+
+__sfr __at (0xF40) PMSTATL;
+volatile __PMSTATLbits_t __at (0xF40) PMSTATLbits;
+
+__sfr __at (0xF41) PMSTATH;
+volatile __PMSTATHbits_t __at (0xF41) PMSTATHbits;
+
+__sfr __at (0xF42) PMEL;
+volatile __PMELbits_t __at (0xF42) PMELbits;
+
+__sfr __at (0xF42) PMEN;
+
+__sfr __at (0xF43) PMEH;
+volatile __PMEHbits_t __at (0xF43) PMEHbits;
+
+__sfr __at (0xF44) PMDIN2;
+
+__sfr __at (0xF44) PMDIN2L;
+
+__sfr __at (0xF45) PMDIN2H;
+
+__sfr __at (0xF46) PMDOUT2;
+
+__sfr __at (0xF46) PMDOUT2L;
+
+__sfr __at (0xF47) PMDOUT2H;
+
+__sfr __at (0xF48) PMMODE;
+
+__sfr __at (0xF48) PMMODEL;
+volatile __PMMODELbits_t __at (0xF48) PMMODELbits;
+
+__sfr __at (0xF49) PMMODEH;
+volatile __PMMODEHbits_t __at (0xF49) PMMODEHbits;
+
+__sfr __at (0xF4A) PMCON;
+
+__sfr __at (0xF4A) PMCONL;
+volatile __PMCONLbits_t __at (0xF4A) PMCONLbits;
+
+__sfr __at (0xF4B) PMCONH;
+volatile __PMCONHbits_t __at (0xF4B) PMCONHbits;
+
+__sfr __at (0xF4C) UEP0;
+volatile __UEP0bits_t __at (0xF4C) UEP0bits;
+
+__sfr __at (0xF4D) UEP1;
+volatile __UEP1bits_t __at (0xF4D) UEP1bits;
+
+__sfr __at (0xF4E) UEP2;
+volatile __UEP2bits_t __at (0xF4E) UEP2bits;
+
+__sfr __at (0xF4F) UEP3;
+volatile __UEP3bits_t __at (0xF4F) UEP3bits;
+
+__sfr __at (0xF50) UEP4;
+volatile __UEP4bits_t __at (0xF50) UEP4bits;
+
+__sfr __at (0xF51) UEP5;
+volatile __UEP5bits_t __at (0xF51) UEP5bits;
+
+__sfr __at (0xF52) UEP6;
+volatile __UEP6bits_t __at (0xF52) UEP6bits;
+
+__sfr __at (0xF53) UEP7;
+volatile __UEP7bits_t __at (0xF53) UEP7bits;
+
+__sfr __at (0xF54) UEP8;
+volatile __UEP8bits_t __at (0xF54) UEP8bits;
+
+__sfr __at (0xF55) UEP9;
+volatile __UEP9bits_t __at (0xF55) UEP9bits;
+
+__sfr __at (0xF56) UEP10;
+volatile __UEP10bits_t __at (0xF56) UEP10bits;
+
+__sfr __at (0xF57) UEP11;
+volatile __UEP11bits_t __at (0xF57) UEP11bits;
+
+__sfr __at (0xF58) UEP12;
+volatile __UEP12bits_t __at (0xF58) UEP12bits;
+
+__sfr __at (0xF59) UEP13;
+volatile __UEP13bits_t __at (0xF59) UEP13bits;
+
+__sfr __at (0xF5A) UEP14;
+volatile __UEP14bits_t __at (0xF5A) UEP14bits;
+
+__sfr __at (0xF5B) UEP15;
+volatile __UEP15bits_t __at (0xF5B) UEP15bits;
+
+__sfr __at (0xF5C) UIE;
+volatile __UIEbits_t __at (0xF5C) UIEbits;
+
+__sfr __at (0xF5D) UEIE;
+volatile __UEIEbits_t __at (0xF5D) UEIEbits;
+
+__sfr __at (0xF5E) UADDR;
+volatile __UADDRbits_t __at (0xF5E) UADDRbits;
+
+__sfr __at (0xF5F) UCFG;
+volatile __UCFGbits_t __at (0xF5F) UCFGbits;
+
+__sfr __at (0xF60) UFRM;
+
+__sfr __at (0xF60) UFRML;
+volatile __UFRMLbits_t __at (0xF60) UFRMLbits;
+
+__sfr __at (0xF61) UFRMH;
+volatile __UFRMHbits_t __at (0xF61) UFRMHbits;
+
+__sfr __at (0xF62) UIR;
+volatile __UIRbits_t __at (0xF62) UIRbits;
+
+__sfr __at (0xF63) UEIR;
+volatile __UEIRbits_t __at (0xF63) UEIRbits;
+
+__sfr __at (0xF64) USTAT;
+volatile __USTATbits_t __at (0xF64) USTATbits;
+
+__sfr __at (0xF65) UCON;
+volatile __UCONbits_t __at (0xF65) UCONbits;
+
+__sfr __at (0xF66) PMDIN1;
+
+__sfr __at (0xF66) PMDIN1L;
+
+__sfr __at (0xF67) PMDIN1H;
+
+__sfr __at (0xF68) PMADDR;
+
+__sfr __at (0xF68) PMADDRL;
+
+__sfr __at (0xF68) PMDOUT1;
+
+__sfr __at (0xF68) PMDOUT1L;
+
+__sfr __at (0xF69) PMADDRH;
+volatile __PMADDRHbits_t __at (0xF69) PMADDRHbits;
+
+__sfr __at (0xF69) PMDOUT1H;
+
+__sfr __at (0xF6A) CMSTAT;
+volatile __CMSTATbits_t __at (0xF6A) CMSTATbits;
+
+__sfr __at (0xF6A) CMSTATUS;
+volatile __CMSTATUSbits_t __at (0xF6A) CMSTATUSbits;
+
+__sfr __at (0xF6B) SSP2CON2;
+volatile __SSP2CON2bits_t __at (0xF6B) SSP2CON2bits;
+
+__sfr __at (0xF6C) SSP2CON1;
+volatile __SSP2CON1bits_t __at (0xF6C) SSP2CON1bits;
+
+__sfr __at (0xF6D) SSP2STAT;
+volatile __SSP2STATbits_t __at (0xF6D) SSP2STATbits;
+
+__sfr __at (0xF6E) SSP2ADD;
+
+__sfr __at (0xF6E) SSP2MSK;
+volatile __SSP2MSKbits_t __at (0xF6E) SSP2MSKbits;
+
+__sfr __at (0xF6F) SSP2BUF;
+
+__sfr __at (0xF70) CCP5CON;
+volatile __CCP5CONbits_t __at (0xF70) CCP5CONbits;
+
+__sfr __at (0xF71) CCPR5;
+
+__sfr __at (0xF71) CCPR5L;
+
+__sfr __at (0xF72) CCPR5H;
+
+__sfr __at (0xF73) CCP4CON;
+volatile __CCP4CONbits_t __at (0xF73) CCP4CONbits;
+
+__sfr __at (0xF74) CCPR4;
+
+__sfr __at (0xF74) CCPR4L;
+
+__sfr __at (0xF75) CCPR4H;
+
+__sfr __at (0xF76) T4CON;
+volatile __T4CONbits_t __at (0xF76) T4CONbits;
+
+__sfr __at (0xF77) CVRCON;
+volatile __CVRCONbits_t __at (0xF77) CVRCONbits;
+
+__sfr __at (0xF77) PR4;
+
+__sfr __at (0xF78) TMR4;
+
+__sfr __at (0xF79) T3CON;
+volatile __T3CONbits_t __at (0xF79) T3CONbits;
+
+__sfr __at (0xF7A) TMR3L;
+
+__sfr __at (0xF7B) TMR3H;
+
+__sfr __at (0xF7C) BAUDCON2;
+volatile __BAUDCON2bits_t __at (0xF7C) BAUDCON2bits;
+
+__sfr __at (0xF7D) SPBRGH2;
+
+__sfr __at (0xF7E) BAUDCON;
+volatile __BAUDCONbits_t __at (0xF7E) BAUDCONbits;
+
+__sfr __at (0xF7E) BAUDCON1;
+volatile __BAUDCON1bits_t __at (0xF7E) BAUDCON1bits;
+
+__sfr __at (0xF7F) SPBRGH;
+
+__sfr __at (0xF7F) SPBRGH1;
+
+__sfr __at (0xF80) PORTA;
+volatile __PORTAbits_t __at (0xF80) PORTAbits;
+
+__sfr __at (0xF81) PORTB;
+volatile __PORTBbits_t __at (0xF81) PORTBbits;
+
+__sfr __at (0xF82) PORTC;
+volatile __PORTCbits_t __at (0xF82) PORTCbits;
+
+__sfr __at (0xF83) PORTD;
+volatile __PORTDbits_t __at (0xF83) PORTDbits;
+
+__sfr __at (0xF84) PORTE;
+volatile __PORTEbits_t __at (0xF84) PORTEbits;
+
+__sfr __at (0xF85) PORTF;
+volatile __PORTFbits_t __at (0xF85) PORTFbits;
+
+__sfr __at (0xF86) PORTG;
+volatile __PORTGbits_t __at (0xF86) PORTGbits;
+
+__sfr __at (0xF87) PORTH;
+volatile __PORTHbits_t __at (0xF87) PORTHbits;
+
+__sfr __at (0xF88) PORTJ;
+volatile __PORTJbits_t __at (0xF88) PORTJbits;
+
+__sfr __at (0xF89) LATA;
+volatile __LATAbits_t __at (0xF89) LATAbits;
+
+__sfr __at (0xF8A) LATB;
+volatile __LATBbits_t __at (0xF8A) LATBbits;
+
+__sfr __at (0xF8B) LATC;
+volatile __LATCbits_t __at (0xF8B) LATCbits;
+
+__sfr __at (0xF8C) LATD;
+volatile __LATDbits_t __at (0xF8C) LATDbits;
+
+__sfr __at (0xF8D) LATE;
+volatile __LATEbits_t __at (0xF8D) LATEbits;
+
+__sfr __at (0xF8E) LATF;
+volatile __LATFbits_t __at (0xF8E) LATFbits;
+
+__sfr __at (0xF8F) LATG;
+volatile __LATGbits_t __at (0xF8F) LATGbits;
+
+__sfr __at (0xF90) LATH;
+volatile __LATHbits_t __at (0xF90) LATHbits;
+
+__sfr __at (0xF91) LATJ;
+volatile __LATJbits_t __at (0xF91) LATJbits;
+
+__sfr __at (0xF92) DDRA;
+volatile __DDRAbits_t __at (0xF92) DDRAbits;
+
+__sfr __at (0xF92) TRISA;
+volatile __TRISAbits_t __at (0xF92) TRISAbits;
+
+__sfr __at (0xF93) DDRB;
+volatile __DDRBbits_t __at (0xF93) DDRBbits;
+
+__sfr __at (0xF93) TRISB;
+volatile __TRISBbits_t __at (0xF93) TRISBbits;
+
+__sfr __at (0xF94) DDRC;
+volatile __DDRCbits_t __at (0xF94) DDRCbits;
+
+__sfr __at (0xF94) TRISC;
+volatile __TRISCbits_t __at (0xF94) TRISCbits;
+
+__sfr __at (0xF95) DDRD;
+volatile __DDRDbits_t __at (0xF95) DDRDbits;
+
+__sfr __at (0xF95) TRISD;
+volatile __TRISDbits_t __at (0xF95) TRISDbits;
+
+__sfr __at (0xF96) DDRE;
+volatile __DDREbits_t __at (0xF96) DDREbits;
+
+__sfr __at (0xF96) TRISE;
+volatile __TRISEbits_t __at (0xF96) TRISEbits;
+
+__sfr __at (0xF97) DDRF;
+volatile __DDRFbits_t __at (0xF97) DDRFbits;
+
+__sfr __at (0xF97) TRISF;
+volatile __TRISFbits_t __at (0xF97) TRISFbits;
+
+__sfr __at (0xF98) DDRG;
+volatile __DDRGbits_t __at (0xF98) DDRGbits;
+
+__sfr __at (0xF98) TRISG;
+volatile __TRISGbits_t __at (0xF98) TRISGbits;
+
+__sfr __at (0xF99) DDRH;
+volatile __DDRHbits_t __at (0xF99) DDRHbits;
+
+__sfr __at (0xF99) TRISH;
+volatile __TRISHbits_t __at (0xF99) TRISHbits;
+
+__sfr __at (0xF9A) DDRJ;
+volatile __DDRJbits_t __at (0xF9A) DDRJbits;
+
+__sfr __at (0xF9A) TRISJ;
+volatile __TRISJbits_t __at (0xF9A) TRISJbits;
+
+__sfr __at (0xF9B) OSCTUNE;
+volatile __OSCTUNEbits_t __at (0xF9B) OSCTUNEbits;
+
+__sfr __at (0xF9C) RCSTA2;
+volatile __RCSTA2bits_t __at (0xF9C) RCSTA2bits;
+
+__sfr __at (0xF9D) PIE1;
+volatile __PIE1bits_t __at (0xF9D) PIE1bits;
+
+__sfr __at (0xF9E) PIR1;
+volatile __PIR1bits_t __at (0xF9E) PIR1bits;
+
+__sfr __at (0xF9F) IPR1;
+volatile __IPR1bits_t __at (0xF9F) IPR1bits;
+
+__sfr __at (0xFA0) PIE2;
+volatile __PIE2bits_t __at (0xFA0) PIE2bits;
+
+__sfr __at (0xFA1) PIR2;
+volatile __PIR2bits_t __at (0xFA1) PIR2bits;
+
+__sfr __at (0xFA2) IPR2;
+volatile __IPR2bits_t __at (0xFA2) IPR2bits;
+
+__sfr __at (0xFA3) PIE3;
+volatile __PIE3bits_t __at (0xFA3) PIE3bits;
+
+__sfr __at (0xFA4) PIR3;
+volatile __PIR3bits_t __at (0xFA4) PIR3bits;
+
+__sfr __at (0xFA5) IPR3;
+volatile __IPR3bits_t __at (0xFA5) IPR3bits;
+
+__sfr __at (0xFA6) EECON1;
+volatile __EECON1bits_t __at (0xFA6) EECON1bits;
+
+__sfr __at (0xFA7) EECON2;
+
+__sfr __at (0xFA8) TXSTA2;
+volatile __TXSTA2bits_t __at (0xFA8) TXSTA2bits;
+
+__sfr __at (0xFA9) TXREG2;
+
+__sfr __at (0xFAA) RCREG2;
+
+__sfr __at (0xFAB) SPBRG2;
+
+__sfr __at (0xFAC) RCSTA;
+volatile __RCSTAbits_t __at (0xFAC) RCSTAbits;
+
+__sfr __at (0xFAC) RCSTA1;
+volatile __RCSTA1bits_t __at (0xFAC) RCSTA1bits;
+
+__sfr __at (0xFAD) TXSTA;
+volatile __TXSTAbits_t __at (0xFAD) TXSTAbits;
+
+__sfr __at (0xFAD) TXSTA1;
+volatile __TXSTA1bits_t __at (0xFAD) TXSTA1bits;
+
+__sfr __at (0xFAE) TXREG;
+
+__sfr __at (0xFAE) TXREG1;
+
+__sfr __at (0xFAF) RCREG;
+
+__sfr __at (0xFAF) RCREG1;
+
+__sfr __at (0xFB0) SPBRG;
+
+__sfr __at (0xFB0) SPBRG1;
+
+__sfr __at (0xFB1) CCP3CON;
+volatile __CCP3CONbits_t __at (0xFB1) CCP3CONbits;
+
+__sfr __at (0xFB1) ECCP3CON;
+volatile __ECCP3CONbits_t __at (0xFB1) ECCP3CONbits;
+
+__sfr __at (0xFB2) CCPR3;
+
+__sfr __at (0xFB2) CCPR3L;
+
+__sfr __at (0xFB3) CCPR3H;
+
+__sfr __at (0xFB4) ECCP3DEL;
+volatile __ECCP3DELbits_t __at (0xFB4) ECCP3DELbits;
+
+__sfr __at (0xFB5) ECCP3AS;
+volatile __ECCP3ASbits_t __at (0xFB5) ECCP3ASbits;
+
+__sfr __at (0xFB6) CCP2CON;
+volatile __CCP2CONbits_t __at (0xFB6) CCP2CONbits;
+
+__sfr __at (0xFB6) ECCP2CON;
+volatile __ECCP2CONbits_t __at (0xFB6) ECCP2CONbits;
+
+__sfr __at (0xFB7) CCPR2;
+
+__sfr __at (0xFB7) CCPR2L;
+
+__sfr __at (0xFB8) CCPR2H;
+
+__sfr __at (0xFB9) ECCP2DEL;
+volatile __ECCP2DELbits_t __at (0xFB9) ECCP2DELbits;
+
+__sfr __at (0xFBA) ECCP2AS;
+volatile __ECCP2ASbits_t __at (0xFBA) ECCP2ASbits;
+
+__sfr __at (0xFBB) CCP1CON;
+volatile __CCP1CONbits_t __at (0xFBB) CCP1CONbits;
+
+__sfr __at (0xFBB) ECCP1CON;
+volatile __ECCP1CONbits_t __at (0xFBB) ECCP1CONbits;
+
+__sfr __at (0xFBC) CCPR1;
+
+__sfr __at (0xFBC) CCPR1L;
+
+__sfr __at (0xFBD) CCPR1H;
+
+__sfr __at (0xFBE) ECCP1DEL;
+volatile __ECCP1DELbits_t __at (0xFBE) ECCP1DELbits;
+
+__sfr __at (0xFBF) ECCP1AS;
+volatile __ECCP1ASbits_t __at (0xFBF) ECCP1ASbits;
+
+__sfr __at (0xFC0) WDTCON;
+volatile __WDTCONbits_t __at (0xFC0) WDTCONbits;
+
+__sfr __at (0xFC1) ADCON1;
+volatile __ADCON1bits_t __at (0xFC1) ADCON1bits;
+
+__sfr __at (0xFC1) ANCON0;
+volatile __ANCON0bits_t __at (0xFC1) ANCON0bits;
+
+__sfr __at (0xFC2) ADCON0;
+volatile __ADCON0bits_t __at (0xFC2) ADCON0bits;
+
+__sfr __at (0xFC2) ANCON1;
+volatile __ANCON1bits_t __at (0xFC2) ANCON1bits;
+
+__sfr __at (0xFC3) ADRES;
+
+__sfr __at (0xFC3) ADRESL;
+
+__sfr __at (0xFC4) ADRESH;
+
+__sfr __at (0xFC5) SSP1CON2;
+volatile __SSP1CON2bits_t __at (0xFC5) SSP1CON2bits;
+
+__sfr __at (0xFC5) SSPCON2;
+volatile __SSPCON2bits_t __at (0xFC5) SSPCON2bits;
+
+__sfr __at (0xFC6) SSP1CON1;
+volatile __SSP1CON1bits_t __at (0xFC6) SSP1CON1bits;
+
+__sfr __at (0xFC6) SSPCON1;
+volatile __SSPCON1bits_t __at (0xFC6) SSPCON1bits;
+
+__sfr __at (0xFC7) SSP1STAT;
+volatile __SSP1STATbits_t __at (0xFC7) SSP1STATbits;
+
+__sfr __at (0xFC7) SSPSTAT;
+volatile __SSPSTATbits_t __at (0xFC7) SSPSTATbits;
+
+__sfr __at (0xFC8) SSP1ADD;
+
+__sfr __at (0xFC8) SSP1MSK;
+
+__sfr __at (0xFC8) SSPADD;
+
+__sfr __at (0xFC9) SSP1BUF;
+
+__sfr __at (0xFC9) SSPBUF;
+
+__sfr __at (0xFCA) T2CON;
+volatile __T2CONbits_t __at (0xFCA) T2CONbits;
+
+__sfr __at (0xFCB) MEMCON;
+volatile __MEMCONbits_t __at (0xFCB) MEMCONbits;
+
+__sfr __at (0xFCB) PR2;
+
+__sfr __at (0xFCC) PADCFG1;
+volatile __PADCFG1bits_t __at (0xFCC) PADCFG1bits;
+
+__sfr __at (0xFCC) TMR2;
+
+__sfr __at (0xFCD) ODCON3;
+volatile __ODCON3bits_t __at (0xFCD) ODCON3bits;
+
+__sfr __at (0xFCD) T1CON;
+volatile __T1CONbits_t __at (0xFCD) T1CONbits;
+
+__sfr __at (0xFCE) ODCON2;
+volatile __ODCON2bits_t __at (0xFCE) ODCON2bits;
+
+__sfr __at (0xFCE) TMR1L;
+
+__sfr __at (0xFCF) ODCON1;
+volatile __ODCON1bits_t __at (0xFCF) ODCON1bits;
+
+__sfr __at (0xFCF) TMR1H;
+
+__sfr __at (0xFD0) RCON;
+volatile __RCONbits_t __at (0xFD0) RCONbits;
+
+__sfr __at (0xFD1) CM2CON;
+volatile __CM2CONbits_t __at (0xFD1) CM2CONbits;
+
+__sfr __at (0xFD1) CM2CON1;
+volatile __CM2CON1bits_t __at (0xFD1) CM2CON1bits;
+
+__sfr __at (0xFD2) CM1CON;
+volatile __CM1CONbits_t __at (0xFD2) CM1CONbits;
+
+__sfr __at (0xFD2) CM1CON1;
+volatile __CM1CON1bits_t __at (0xFD2) CM1CON1bits;
+
+__sfr __at (0xFD3) OSCCON;
+volatile __OSCCONbits_t __at (0xFD3) OSCCONbits;
+
+__sfr __at (0xFD3) REFOCON;
+volatile __REFOCONbits_t __at (0xFD3) REFOCONbits;
+
+__sfr __at (0xFD5) T0CON;
+volatile __T0CONbits_t __at (0xFD5) T0CONbits;
+
+__sfr __at (0xFD6) TMR0L;
+
+__sfr __at (0xFD7) TMR0H;
+
+__sfr __at (0xFD8) STATUS;
+volatile __STATUSbits_t __at (0xFD8) STATUSbits;
+
+__sfr __at (0xFD9) FSR2L;
+
+__sfr __at (0xFDA) FSR2H;
+
+__sfr __at (0xFDB) PLUSW2;
+
+__sfr __at (0xFDC) PREINC2;
+
+__sfr __at (0xFDD) POSTDEC2;
+
+__sfr __at (0xFDE) POSTINC2;
+
+__sfr __at (0xFDF) INDF2;
+
+__sfr __at (0xFE0) BSR;
+
+__sfr __at (0xFE1) FSR1L;
+
+__sfr __at (0xFE2) FSR1H;
+
+__sfr __at (0xFE3) PLUSW1;
+
+__sfr __at (0xFE4) PREINC1;
+
+__sfr __at (0xFE5) POSTDEC1;
+
+__sfr __at (0xFE6) POSTINC1;
+
+__sfr __at (0xFE7) INDF1;
+
+__sfr __at (0xFE8) WREG;
+
+__sfr __at (0xFE9) FSR0L;
+
+__sfr __at (0xFEA) FSR0H;
+
+__sfr __at (0xFEB) PLUSW0;
+
+__sfr __at (0xFEC) PREINC0;
+
+__sfr __at (0xFED) POSTDEC0;
+
+__sfr __at (0xFEE) POSTINC0;
+
+__sfr __at (0xFEF) INDF0;
+
+__sfr __at (0xFF0) INTCON3;
+volatile __INTCON3bits_t __at (0xFF0) INTCON3bits;
+
+__sfr __at (0xFF1) INTCON2;
+volatile __INTCON2bits_t __at (0xFF1) INTCON2bits;
+
+__sfr __at (0xFF2) INTCON;
+volatile __INTCONbits_t __at (0xFF2) INTCONbits;
+
+__sfr __at (0xFF3) PROD;
+
+__sfr __at (0xFF3) PRODL;
+
+__sfr __at (0xFF4) PRODH;
+
+__sfr __at (0xFF5) TABLAT;
+
+__sfr __at (0xFF6) TBLPTR;
+
+__sfr __at (0xFF6) TBLPTRL;
+
+__sfr __at (0xFF7) TBLPTRH;
+
+__sfr __at (0xFF8) TBLPTRU;
+
+__sfr __at (0xFF9) PC;
+
+__sfr __at (0xFF9) PCL;
+
+__sfr __at (0xFFA) PCLATH;
+
+__sfr __at (0xFFB) PCLATU;
+
+__sfr __at (0xFFC) STKPTR;
+volatile __STKPTRbits_t __at (0xFFC) STKPTRbits;
+
+__sfr __at (0xFFD) TOS;
+
+__sfr __at (0xFFD) TOSL;
+
+__sfr __at (0xFFE) TOSH;
+
+__sfr __at (0xFFF) TOSU;
+
+
index 619e87f96e1668899b13bd339cc785f33add4443..fd274e0a600da235ef3d88560936ef1a5e6a2c07 100644 (file)
@@ -38,6 +38,21 @@ libio18f2220_a_SOURCES += usart/uopen.c usart/uputc.c usart/uputs.c
 libio18f2220_a_SOURCES += usart/usartd.c
 libio18f2220_a_CFLAGS = -p18f2220 $(AM_CFLAGS)
 
+lib_LIBRARIES += libio18f2221.a
+libio18f2221_a_SOURCES = dummy.c
+libio18f2221_a_SOURCES += adc/adcbusy.c adc/adcclose.c adc/adcconv.c
+libio18f2221_a_SOURCES += adc/adcopen.c adc/adcread.c adc/adcsetch.c
+libio18f2221_a_SOURCES += i2c/i2cack.c i2c/i2cclose.c i2c/i2cdrdy.c
+libio18f2221_a_SOURCES += i2c/i2cidle.c i2c/i2cnack.c i2c/i2copen.c
+libio18f2221_a_SOURCES += i2c/i2creadc.c i2c/i2creads.c i2c/i2crestart.c
+libio18f2221_a_SOURCES += i2c/i2cstart.c i2c/i2cstop.c i2c/i2cwritec.c
+libio18f2221_a_SOURCES += i2c/i2cwrites.c
+libio18f2221_a_SOURCES += usart/ubaud.c usart/ubusy.c usart/uclose.c
+libio18f2221_a_SOURCES += usart/udrdy.c usart/ugetc.c usart/ugets.c
+libio18f2221_a_SOURCES += usart/uopen.c usart/uputc.c usart/uputs.c
+libio18f2221_a_SOURCES += usart/usartd.c
+libio18f2221_a_CFLAGS = -p18f2221 $(AM_CFLAGS)
+
 lib_LIBRARIES += libio18f2320.a
 libio18f2320_a_SOURCES = dummy.c
 libio18f2320_a_SOURCES += adc/adcbusy.c adc/adcclose.c adc/adcconv.c
@@ -76,6 +91,21 @@ libio18f2331_a_SOURCES += usart/uopen.c usart/uputc.c usart/uputs.c
 libio18f2331_a_SOURCES += usart/usartd.c
 libio18f2331_a_CFLAGS = -p18f2331 $(AM_CFLAGS)
 
+lib_LIBRARIES += libio18f23k20.a
+libio18f23k20_a_SOURCES = dummy.c
+libio18f23k20_a_SOURCES += adc/adcbusy.c adc/adcclose.c adc/adcconv.c
+libio18f23k20_a_SOURCES += adc/adcopen.c adc/adcread.c adc/adcsetch.c
+libio18f23k20_a_SOURCES += i2c/i2cack.c i2c/i2cclose.c i2c/i2cdrdy.c
+libio18f23k20_a_SOURCES += i2c/i2cidle.c i2c/i2cnack.c i2c/i2copen.c
+libio18f23k20_a_SOURCES += i2c/i2creadc.c i2c/i2creads.c i2c/i2crestart.c
+libio18f23k20_a_SOURCES += i2c/i2cstart.c i2c/i2cstop.c i2c/i2cwritec.c
+libio18f23k20_a_SOURCES += i2c/i2cwrites.c
+libio18f23k20_a_SOURCES += usart/ubaud.c usart/ubusy.c usart/uclose.c
+libio18f23k20_a_SOURCES += usart/udrdy.c usart/ugetc.c usart/ugets.c
+libio18f23k20_a_SOURCES += usart/uopen.c usart/uputc.c usart/uputs.c
+libio18f23k20_a_SOURCES += usart/usartd.c
+libio18f23k20_a_CFLAGS = -p18f23k20 $(AM_CFLAGS)
+
 lib_LIBRARIES += libio18f2410.a
 libio18f2410_a_SOURCES = dummy.c
 libio18f2410_a_SOURCES += adc/adcbusy.c adc/adcclose.c adc/adcconv.c
@@ -121,6 +151,21 @@ libio18f2420_a_SOURCES += usart/uopen.c usart/uputc.c usart/uputs.c
 libio18f2420_a_SOURCES += usart/usartd.c
 libio18f2420_a_CFLAGS = -p18f2420 $(AM_CFLAGS)
 
+lib_LIBRARIES += libio18f2423.a
+libio18f2423_a_SOURCES = dummy.c
+libio18f2423_a_SOURCES += adc/adcbusy.c adc/adcclose.c adc/adcconv.c
+libio18f2423_a_SOURCES += adc/adcopen.c adc/adcread.c adc/adcsetch.c
+libio18f2423_a_SOURCES += i2c/i2cack.c i2c/i2cclose.c i2c/i2cdrdy.c
+libio18f2423_a_SOURCES += i2c/i2cidle.c i2c/i2cnack.c i2c/i2copen.c
+libio18f2423_a_SOURCES += i2c/i2creadc.c i2c/i2creads.c i2c/i2crestart.c
+libio18f2423_a_SOURCES += i2c/i2cstart.c i2c/i2cstop.c i2c/i2cwritec.c
+libio18f2423_a_SOURCES += i2c/i2cwrites.c
+libio18f2423_a_SOURCES += usart/ubaud.c usart/ubusy.c usart/uclose.c
+libio18f2423_a_SOURCES += usart/udrdy.c usart/ugetc.c usart/ugets.c
+libio18f2423_a_SOURCES += usart/uopen.c usart/uputc.c usart/uputs.c
+libio18f2423_a_SOURCES += usart/usartd.c
+libio18f2423_a_CFLAGS = -p18f2423 $(AM_CFLAGS)
+
 lib_LIBRARIES += libio18f2431.a
 libio18f2431_a_SOURCES = dummy.c
 libio18f2431_a_SOURCES += usart/ubaud.c usart/ubusy.c usart/uclose.c
@@ -199,6 +244,36 @@ libio18f24j10_a_SOURCES += usart/uopen.c usart/uputc.c usart/uputs.c
 libio18f24j10_a_SOURCES += usart/usartd.c
 libio18f24j10_a_CFLAGS = -p18f24j10 $(AM_CFLAGS)
 
+lib_LIBRARIES += libio18f24k20.a
+libio18f24k20_a_SOURCES = dummy.c
+libio18f24k20_a_SOURCES += adc/adcbusy.c adc/adcclose.c adc/adcconv.c
+libio18f24k20_a_SOURCES += adc/adcopen.c adc/adcread.c adc/adcsetch.c
+libio18f24k20_a_SOURCES += i2c/i2cack.c i2c/i2cclose.c i2c/i2cdrdy.c
+libio18f24k20_a_SOURCES += i2c/i2cidle.c i2c/i2cnack.c i2c/i2copen.c
+libio18f24k20_a_SOURCES += i2c/i2creadc.c i2c/i2creads.c i2c/i2crestart.c
+libio18f24k20_a_SOURCES += i2c/i2cstart.c i2c/i2cstop.c i2c/i2cwritec.c
+libio18f24k20_a_SOURCES += i2c/i2cwrites.c
+libio18f24k20_a_SOURCES += usart/ubaud.c usart/ubusy.c usart/uclose.c
+libio18f24k20_a_SOURCES += usart/udrdy.c usart/ugetc.c usart/ugets.c
+libio18f24k20_a_SOURCES += usart/uopen.c usart/uputc.c usart/uputs.c
+libio18f24k20_a_SOURCES += usart/usartd.c
+libio18f24k20_a_CFLAGS = -p18f24k20 $(AM_CFLAGS)
+
+lib_LIBRARIES += libio18f2510.a
+libio18f2510_a_SOURCES = dummy.c
+libio18f2510_a_SOURCES += adc/adcbusy.c adc/adcclose.c adc/adcconv.c
+libio18f2510_a_SOURCES += adc/adcopen.c adc/adcread.c adc/adcsetch.c
+libio18f2510_a_SOURCES += i2c/i2cack.c i2c/i2cclose.c i2c/i2cdrdy.c
+libio18f2510_a_SOURCES += i2c/i2cidle.c i2c/i2cnack.c i2c/i2copen.c
+libio18f2510_a_SOURCES += i2c/i2creadc.c i2c/i2creads.c i2c/i2crestart.c
+libio18f2510_a_SOURCES += i2c/i2cstart.c i2c/i2cstop.c i2c/i2cwritec.c
+libio18f2510_a_SOURCES += i2c/i2cwrites.c
+libio18f2510_a_SOURCES += usart/ubaud.c usart/ubusy.c usart/uclose.c
+libio18f2510_a_SOURCES += usart/udrdy.c usart/ugetc.c usart/ugets.c
+libio18f2510_a_SOURCES += usart/uopen.c usart/uputc.c usart/uputs.c
+libio18f2510_a_SOURCES += usart/usartd.c
+libio18f2510_a_CFLAGS = -p18f2510 $(AM_CFLAGS)
+
 lib_LIBRARIES += libio18f2515.a
 libio18f2515_a_SOURCES = dummy.c
 libio18f2515_a_SOURCES += adc/adcbusy.c adc/adcclose.c adc/adcconv.c
@@ -349,6 +424,21 @@ libio18f25j10_a_SOURCES += usart/uopen.c usart/uputc.c usart/uputs.c
 libio18f25j10_a_SOURCES += usart/usartd.c
 libio18f25j10_a_CFLAGS = -p18f25j10 $(AM_CFLAGS)
 
+lib_LIBRARIES += libio18f25k20.a
+libio18f25k20_a_SOURCES = dummy.c
+libio18f25k20_a_SOURCES += adc/adcbusy.c adc/adcclose.c adc/adcconv.c
+libio18f25k20_a_SOURCES += adc/adcopen.c adc/adcread.c adc/adcsetch.c
+libio18f25k20_a_SOURCES += i2c/i2cack.c i2c/i2cclose.c i2c/i2cdrdy.c
+libio18f25k20_a_SOURCES += i2c/i2cidle.c i2c/i2cnack.c i2c/i2copen.c
+libio18f25k20_a_SOURCES += i2c/i2creadc.c i2c/i2creads.c i2c/i2crestart.c
+libio18f25k20_a_SOURCES += i2c/i2cstart.c i2c/i2cstop.c i2c/i2cwritec.c
+libio18f25k20_a_SOURCES += i2c/i2cwrites.c
+libio18f25k20_a_SOURCES += usart/ubaud.c usart/ubusy.c usart/uclose.c
+libio18f25k20_a_SOURCES += usart/udrdy.c usart/ugetc.c usart/ugets.c
+libio18f25k20_a_SOURCES += usart/uopen.c usart/uputc.c usart/uputs.c
+libio18f25k20_a_SOURCES += usart/usartd.c
+libio18f25k20_a_CFLAGS = -p18f25k20 $(AM_CFLAGS)
+
 lib_LIBRARIES += libio18f2610.a
 libio18f2610_a_SOURCES = dummy.c
 libio18f2610_a_SOURCES += adc/adcbusy.c adc/adcclose.c adc/adcconv.c
@@ -424,6 +514,21 @@ libio18f2685_a_SOURCES += usart/uopen.c usart/uputc.c usart/uputs.c
 libio18f2685_a_SOURCES += usart/usartd.c
 libio18f2685_a_CFLAGS = -p18f2685 $(AM_CFLAGS)
 
+lib_LIBRARIES += libio18f26k20.a
+libio18f26k20_a_SOURCES = dummy.c
+libio18f26k20_a_SOURCES += adc/adcbusy.c adc/adcclose.c adc/adcconv.c
+libio18f26k20_a_SOURCES += adc/adcopen.c adc/adcread.c adc/adcsetch.c
+libio18f26k20_a_SOURCES += i2c/i2cack.c i2c/i2cclose.c i2c/i2cdrdy.c
+libio18f26k20_a_SOURCES += i2c/i2cidle.c i2c/i2cnack.c i2c/i2copen.c
+libio18f26k20_a_SOURCES += i2c/i2creadc.c i2c/i2creads.c i2c/i2crestart.c
+libio18f26k20_a_SOURCES += i2c/i2cstart.c i2c/i2cstop.c i2c/i2cwritec.c
+libio18f26k20_a_SOURCES += i2c/i2cwrites.c
+libio18f26k20_a_SOURCES += usart/ubaud.c usart/ubusy.c usart/uclose.c
+libio18f26k20_a_SOURCES += usart/udrdy.c usart/ugetc.c usart/ugets.c
+libio18f26k20_a_SOURCES += usart/uopen.c usart/uputc.c usart/uputs.c
+libio18f26k20_a_SOURCES += usart/usartd.c
+libio18f26k20_a_CFLAGS = -p18f26k20 $(AM_CFLAGS)
+
 lib_LIBRARIES += libio18f4220.a
 libio18f4220_a_SOURCES = dummy.c
 libio18f4220_a_SOURCES += adc/adcbusy.c adc/adcclose.c adc/adcconv.c
@@ -439,6 +544,21 @@ libio18f4220_a_SOURCES += usart/uopen.c usart/uputc.c usart/uputs.c
 libio18f4220_a_SOURCES += usart/usartd.c
 libio18f4220_a_CFLAGS = -p18f4220 $(AM_CFLAGS)
 
+lib_LIBRARIES += libio18f4221.a
+libio18f4221_a_SOURCES = dummy.c
+libio18f4221_a_SOURCES += adc/adcbusy.c adc/adcclose.c adc/adcconv.c
+libio18f4221_a_SOURCES += adc/adcopen.c adc/adcread.c adc/adcsetch.c
+libio18f4221_a_SOURCES += i2c/i2cack.c i2c/i2cclose.c i2c/i2cdrdy.c
+libio18f4221_a_SOURCES += i2c/i2cidle.c i2c/i2cnack.c i2c/i2copen.c
+libio18f4221_a_SOURCES += i2c/i2creadc.c i2c/i2creads.c i2c/i2crestart.c
+libio18f4221_a_SOURCES += i2c/i2cstart.c i2c/i2cstop.c i2c/i2cwritec.c
+libio18f4221_a_SOURCES += i2c/i2cwrites.c
+libio18f4221_a_SOURCES += usart/ubaud.c usart/ubusy.c usart/uclose.c
+libio18f4221_a_SOURCES += usart/udrdy.c usart/ugetc.c usart/ugets.c
+libio18f4221_a_SOURCES += usart/uopen.c usart/uputc.c usart/uputs.c
+libio18f4221_a_SOURCES += usart/usartd.c
+libio18f4221_a_CFLAGS = -p18f4221 $(AM_CFLAGS)
+
 lib_LIBRARIES += libio18f4320.a
 libio18f4320_a_SOURCES = dummy.c
 libio18f4320_a_SOURCES += adc/adcbusy.c adc/adcclose.c adc/adcconv.c
@@ -477,6 +597,21 @@ libio18f4331_a_SOURCES += usart/uopen.c usart/uputc.c usart/uputs.c
 libio18f4331_a_SOURCES += usart/usartd.c
 libio18f4331_a_CFLAGS = -p18f4331 $(AM_CFLAGS)
 
+lib_LIBRARIES += libio18f43k20.a
+libio18f43k20_a_SOURCES = dummy.c
+libio18f43k20_a_SOURCES += adc/adcbusy.c adc/adcclose.c adc/adcconv.c
+libio18f43k20_a_SOURCES += adc/adcopen.c adc/adcread.c adc/adcsetch.c
+libio18f43k20_a_SOURCES += i2c/i2cack.c i2c/i2cclose.c i2c/i2cdrdy.c
+libio18f43k20_a_SOURCES += i2c/i2cidle.c i2c/i2cnack.c i2c/i2copen.c
+libio18f43k20_a_SOURCES += i2c/i2creadc.c i2c/i2creads.c i2c/i2crestart.c
+libio18f43k20_a_SOURCES += i2c/i2cstart.c i2c/i2cstop.c i2c/i2cwritec.c
+libio18f43k20_a_SOURCES += i2c/i2cwrites.c
+libio18f43k20_a_SOURCES += usart/ubaud.c usart/ubusy.c usart/uclose.c
+libio18f43k20_a_SOURCES += usart/udrdy.c usart/ugetc.c usart/ugets.c
+libio18f43k20_a_SOURCES += usart/uopen.c usart/uputc.c usart/uputs.c
+libio18f43k20_a_SOURCES += usart/usartd.c
+libio18f43k20_a_CFLAGS = -p18f43k20 $(AM_CFLAGS)
+
 lib_LIBRARIES += libio18f4410.a
 libio18f4410_a_SOURCES = dummy.c
 libio18f4410_a_SOURCES += adc/adcbusy.c adc/adcclose.c adc/adcconv.c
@@ -522,6 +657,21 @@ libio18f4420_a_SOURCES += usart/uopen.c usart/uputc.c usart/uputs.c
 libio18f4420_a_SOURCES += usart/usartd.c
 libio18f4420_a_CFLAGS = -p18f4420 $(AM_CFLAGS)
 
+lib_LIBRARIES += libio18f4423.a
+libio18f4423_a_SOURCES = dummy.c
+libio18f4423_a_SOURCES += adc/adcbusy.c adc/adcclose.c adc/adcconv.c
+libio18f4423_a_SOURCES += adc/adcopen.c adc/adcread.c adc/adcsetch.c
+libio18f4423_a_SOURCES += i2c/i2cack.c i2c/i2cclose.c i2c/i2cdrdy.c
+libio18f4423_a_SOURCES += i2c/i2cidle.c i2c/i2cnack.c i2c/i2copen.c
+libio18f4423_a_SOURCES += i2c/i2creadc.c i2c/i2creads.c i2c/i2crestart.c
+libio18f4423_a_SOURCES += i2c/i2cstart.c i2c/i2cstop.c i2c/i2cwritec.c
+libio18f4423_a_SOURCES += i2c/i2cwrites.c
+libio18f4423_a_SOURCES += usart/ubaud.c usart/ubusy.c usart/uclose.c
+libio18f4423_a_SOURCES += usart/udrdy.c usart/ugetc.c usart/ugets.c
+libio18f4423_a_SOURCES += usart/uopen.c usart/uputc.c usart/uputs.c
+libio18f4423_a_SOURCES += usart/usartd.c
+libio18f4423_a_CFLAGS = -p18f4423 $(AM_CFLAGS)
+
 lib_LIBRARIES += libio18f4431.a
 libio18f4431_a_SOURCES = dummy.c
 libio18f4431_a_SOURCES += usart/ubaud.c usart/ubusy.c usart/uclose.c
@@ -600,6 +750,21 @@ libio18f44j10_a_SOURCES += usart/uopen.c usart/uputc.c usart/uputs.c
 libio18f44j10_a_SOURCES += usart/usartd.c
 libio18f44j10_a_CFLAGS = -p18f44j10 $(AM_CFLAGS)
 
+lib_LIBRARIES += libio18f44k20.a
+libio18f44k20_a_SOURCES = dummy.c
+libio18f44k20_a_SOURCES += adc/adcbusy.c adc/adcclose.c adc/adcconv.c
+libio18f44k20_a_SOURCES += adc/adcopen.c adc/adcread.c adc/adcsetch.c
+libio18f44k20_a_SOURCES += i2c/i2cack.c i2c/i2cclose.c i2c/i2cdrdy.c
+libio18f44k20_a_SOURCES += i2c/i2cidle.c i2c/i2cnack.c i2c/i2copen.c
+libio18f44k20_a_SOURCES += i2c/i2creadc.c i2c/i2creads.c i2c/i2crestart.c
+libio18f44k20_a_SOURCES += i2c/i2cstart.c i2c/i2cstop.c i2c/i2cwritec.c
+libio18f44k20_a_SOURCES += i2c/i2cwrites.c
+libio18f44k20_a_SOURCES += usart/ubaud.c usart/ubusy.c usart/uclose.c
+libio18f44k20_a_SOURCES += usart/udrdy.c usart/ugetc.c usart/ugets.c
+libio18f44k20_a_SOURCES += usart/uopen.c usart/uputc.c usart/uputs.c
+libio18f44k20_a_SOURCES += usart/usartd.c
+libio18f44k20_a_CFLAGS = -p18f44k20 $(AM_CFLAGS)
+
 lib_LIBRARIES += libio18f4510.a
 libio18f4510_a_SOURCES = dummy.c
 libio18f4510_a_SOURCES += adc/adcbusy.c adc/adcclose.c adc/adcconv.c
@@ -660,6 +825,21 @@ libio18f4520_a_SOURCES += usart/uopen.c usart/uputc.c usart/uputs.c
 libio18f4520_a_SOURCES += usart/usartd.c
 libio18f4520_a_CFLAGS = -p18f4520 $(AM_CFLAGS)
 
+lib_LIBRARIES += libio18f4523.a
+libio18f4523_a_SOURCES = dummy.c
+libio18f4523_a_SOURCES += adc/adcbusy.c adc/adcclose.c adc/adcconv.c
+libio18f4523_a_SOURCES += adc/adcopen.c adc/adcread.c adc/adcsetch.c
+libio18f4523_a_SOURCES += i2c/i2cack.c i2c/i2cclose.c i2c/i2cdrdy.c
+libio18f4523_a_SOURCES += i2c/i2cidle.c i2c/i2cnack.c i2c/i2copen.c
+libio18f4523_a_SOURCES += i2c/i2creadc.c i2c/i2creads.c i2c/i2crestart.c
+libio18f4523_a_SOURCES += i2c/i2cstart.c i2c/i2cstop.c i2c/i2cwritec.c
+libio18f4523_a_SOURCES += i2c/i2cwrites.c
+libio18f4523_a_SOURCES += usart/ubaud.c usart/ubusy.c usart/uclose.c
+libio18f4523_a_SOURCES += usart/udrdy.c usart/ugetc.c usart/ugets.c
+libio18f4523_a_SOURCES += usart/uopen.c usart/uputc.c usart/uputs.c
+libio18f4523_a_SOURCES += usart/usartd.c
+libio18f4523_a_CFLAGS = -p18f4523 $(AM_CFLAGS)
+
 lib_LIBRARIES += libio18f4525.a
 libio18f4525_a_SOURCES = dummy.c
 libio18f4525_a_SOURCES += adc/adcbusy.c adc/adcclose.c adc/adcconv.c
@@ -750,6 +930,21 @@ libio18f45j10_a_SOURCES += usart/uopen.c usart/uputc.c usart/uputs.c
 libio18f45j10_a_SOURCES += usart/usartd.c
 libio18f45j10_a_CFLAGS = -p18f45j10 $(AM_CFLAGS)
 
+lib_LIBRARIES += libio18f45k20.a
+libio18f45k20_a_SOURCES = dummy.c
+libio18f45k20_a_SOURCES += adc/adcbusy.c adc/adcclose.c adc/adcconv.c
+libio18f45k20_a_SOURCES += adc/adcopen.c adc/adcread.c adc/adcsetch.c
+libio18f45k20_a_SOURCES += i2c/i2cack.c i2c/i2cclose.c i2c/i2cdrdy.c
+libio18f45k20_a_SOURCES += i2c/i2cidle.c i2c/i2cnack.c i2c/i2copen.c
+libio18f45k20_a_SOURCES += i2c/i2creadc.c i2c/i2creads.c i2c/i2crestart.c
+libio18f45k20_a_SOURCES += i2c/i2cstart.c i2c/i2cstop.c i2c/i2cwritec.c
+libio18f45k20_a_SOURCES += i2c/i2cwrites.c
+libio18f45k20_a_SOURCES += usart/ubaud.c usart/ubusy.c usart/uclose.c
+libio18f45k20_a_SOURCES += usart/udrdy.c usart/ugetc.c usart/ugets.c
+libio18f45k20_a_SOURCES += usart/uopen.c usart/uputc.c usart/uputs.c
+libio18f45k20_a_SOURCES += usart/usartd.c
+libio18f45k20_a_CFLAGS = -p18f45k20 $(AM_CFLAGS)
+
 lib_LIBRARIES += libio18f4610.a
 libio18f4610_a_SOURCES = dummy.c
 libio18f4610_a_SOURCES += adc/adcbusy.c adc/adcclose.c adc/adcconv.c
@@ -825,6 +1020,21 @@ libio18f4685_a_SOURCES += usart/uopen.c usart/uputc.c usart/uputs.c
 libio18f4685_a_SOURCES += usart/usartd.c
 libio18f4685_a_CFLAGS = -p18f4685 $(AM_CFLAGS)
 
+lib_LIBRARIES += libio18f46k20.a
+libio18f46k20_a_SOURCES = dummy.c
+libio18f46k20_a_SOURCES += adc/adcbusy.c adc/adcclose.c adc/adcconv.c
+libio18f46k20_a_SOURCES += adc/adcopen.c adc/adcread.c adc/adcsetch.c
+libio18f46k20_a_SOURCES += i2c/i2cack.c i2c/i2cclose.c i2c/i2cdrdy.c
+libio18f46k20_a_SOURCES += i2c/i2cidle.c i2c/i2cnack.c i2c/i2copen.c
+libio18f46k20_a_SOURCES += i2c/i2creadc.c i2c/i2creads.c i2c/i2crestart.c
+libio18f46k20_a_SOURCES += i2c/i2cstart.c i2c/i2cstop.c i2c/i2cwritec.c
+libio18f46k20_a_SOURCES += i2c/i2cwrites.c
+libio18f46k20_a_SOURCES += usart/ubaud.c usart/ubusy.c usart/uclose.c
+libio18f46k20_a_SOURCES += usart/udrdy.c usart/ugetc.c usart/ugets.c
+libio18f46k20_a_SOURCES += usart/uopen.c usart/uputc.c usart/uputs.c
+libio18f46k20_a_SOURCES += usart/usartd.c
+libio18f46k20_a_CFLAGS = -p18f46k20 $(AM_CFLAGS)
+
 lib_LIBRARIES += libio18f6520.a
 libio18f6520_a_SOURCES = dummy.c
 libio18f6520_a_SOURCES += adc/adcbusy.c adc/adcclose.c adc/adcconv.c
@@ -855,6 +1065,21 @@ libio18f6585_a_SOURCES += usart/uopen.c usart/uputc.c usart/uputs.c
 libio18f6585_a_SOURCES += usart/usartd.c
 libio18f6585_a_CFLAGS = -p18f6585 $(AM_CFLAGS)
 
+lib_LIBRARIES += libio18f65j50.a
+libio18f65j50_a_SOURCES = dummy.c
+libio18f65j50_a_SOURCES += adc/adcbusy.c adc/adcclose.c adc/adcconv.c
+libio18f65j50_a_SOURCES += adc/adcopen.c adc/adcread.c adc/adcsetch.c
+libio18f65j50_a_SOURCES += i2c/i2cack.c i2c/i2cclose.c i2c/i2cdrdy.c
+libio18f65j50_a_SOURCES += i2c/i2cidle.c i2c/i2cnack.c i2c/i2copen.c
+libio18f65j50_a_SOURCES += i2c/i2creadc.c i2c/i2creads.c i2c/i2crestart.c
+libio18f65j50_a_SOURCES += i2c/i2cstart.c i2c/i2cstop.c i2c/i2cwritec.c
+libio18f65j50_a_SOURCES += i2c/i2cwrites.c
+libio18f65j50_a_SOURCES += usart/ubaud.c usart/ubusy.c usart/uclose.c
+libio18f65j50_a_SOURCES += usart/udrdy.c usart/ugetc.c usart/ugets.c
+libio18f65j50_a_SOURCES += usart/uopen.c usart/uputc.c usart/uputs.c
+libio18f65j50_a_SOURCES += usart/usartd.c
+libio18f65j50_a_CFLAGS = -p18f65j50 $(AM_CFLAGS)
+
 lib_LIBRARIES += libio18f6620.a
 libio18f6620_a_SOURCES = dummy.c
 libio18f6620_a_SOURCES += adc/adcbusy.c adc/adcclose.c adc/adcconv.c
@@ -885,6 +1110,36 @@ libio18f6680_a_SOURCES += usart/uopen.c usart/uputc.c usart/uputs.c
 libio18f6680_a_SOURCES += usart/usartd.c
 libio18f6680_a_CFLAGS = -p18f6680 $(AM_CFLAGS)
 
+lib_LIBRARIES += libio18f66j50.a
+libio18f66j50_a_SOURCES = dummy.c
+libio18f66j50_a_SOURCES += adc/adcbusy.c adc/adcclose.c adc/adcconv.c
+libio18f66j50_a_SOURCES += adc/adcopen.c adc/adcread.c adc/adcsetch.c
+libio18f66j50_a_SOURCES += i2c/i2cack.c i2c/i2cclose.c i2c/i2cdrdy.c
+libio18f66j50_a_SOURCES += i2c/i2cidle.c i2c/i2cnack.c i2c/i2copen.c
+libio18f66j50_a_SOURCES += i2c/i2creadc.c i2c/i2creads.c i2c/i2crestart.c
+libio18f66j50_a_SOURCES += i2c/i2cstart.c i2c/i2cstop.c i2c/i2cwritec.c
+libio18f66j50_a_SOURCES += i2c/i2cwrites.c
+libio18f66j50_a_SOURCES += usart/ubaud.c usart/ubusy.c usart/uclose.c
+libio18f66j50_a_SOURCES += usart/udrdy.c usart/ugetc.c usart/ugets.c
+libio18f66j50_a_SOURCES += usart/uopen.c usart/uputc.c usart/uputs.c
+libio18f66j50_a_SOURCES += usart/usartd.c
+libio18f66j50_a_CFLAGS = -p18f66j50 $(AM_CFLAGS)
+
+lib_LIBRARIES += libio18f66j55.a
+libio18f66j55_a_SOURCES = dummy.c
+libio18f66j55_a_SOURCES += adc/adcbusy.c adc/adcclose.c adc/adcconv.c
+libio18f66j55_a_SOURCES += adc/adcopen.c adc/adcread.c adc/adcsetch.c
+libio18f66j55_a_SOURCES += i2c/i2cack.c i2c/i2cclose.c i2c/i2cdrdy.c
+libio18f66j55_a_SOURCES += i2c/i2cidle.c i2c/i2cnack.c i2c/i2copen.c
+libio18f66j55_a_SOURCES += i2c/i2creadc.c i2c/i2creads.c i2c/i2crestart.c
+libio18f66j55_a_SOURCES += i2c/i2cstart.c i2c/i2cstop.c i2c/i2cwritec.c
+libio18f66j55_a_SOURCES += i2c/i2cwrites.c
+libio18f66j55_a_SOURCES += usart/ubaud.c usart/ubusy.c usart/uclose.c
+libio18f66j55_a_SOURCES += usart/udrdy.c usart/ugetc.c usart/ugets.c
+libio18f66j55_a_SOURCES += usart/uopen.c usart/uputc.c usart/uputs.c
+libio18f66j55_a_SOURCES += usart/usartd.c
+libio18f66j55_a_CFLAGS = -p18f66j55 $(AM_CFLAGS)
+
 lib_LIBRARIES += libio18f66j60.a
 libio18f66j60_a_SOURCES = dummy.c
 libio18f66j60_a_SOURCES += adc/adcbusy.c adc/adcclose.c adc/adcconv.c
@@ -930,6 +1185,21 @@ libio18f6720_a_SOURCES += usart/uopen.c usart/uputc.c usart/uputs.c
 libio18f6720_a_SOURCES += usart/usartd.c
 libio18f6720_a_CFLAGS = -p18f6720 $(AM_CFLAGS)
 
+lib_LIBRARIES += libio18f67j50.a
+libio18f67j50_a_SOURCES = dummy.c
+libio18f67j50_a_SOURCES += adc/adcbusy.c adc/adcclose.c adc/adcconv.c
+libio18f67j50_a_SOURCES += adc/adcopen.c adc/adcread.c adc/adcsetch.c
+libio18f67j50_a_SOURCES += i2c/i2cack.c i2c/i2cclose.c i2c/i2cdrdy.c
+libio18f67j50_a_SOURCES += i2c/i2cidle.c i2c/i2cnack.c i2c/i2copen.c
+libio18f67j50_a_SOURCES += i2c/i2creadc.c i2c/i2creads.c i2c/i2crestart.c
+libio18f67j50_a_SOURCES += i2c/i2cstart.c i2c/i2cstop.c i2c/i2cwritec.c
+libio18f67j50_a_SOURCES += i2c/i2cwrites.c
+libio18f67j50_a_SOURCES += usart/ubaud.c usart/ubusy.c usart/uclose.c
+libio18f67j50_a_SOURCES += usart/udrdy.c usart/ugetc.c usart/ugets.c
+libio18f67j50_a_SOURCES += usart/uopen.c usart/uputc.c usart/uputs.c
+libio18f67j50_a_SOURCES += usart/usartd.c
+libio18f67j50_a_CFLAGS = -p18f67j50 $(AM_CFLAGS)
+
 lib_LIBRARIES += libio18f67j60.a
 libio18f67j60_a_SOURCES = dummy.c
 libio18f67j60_a_SOURCES += adc/adcbusy.c adc/adcclose.c adc/adcconv.c
@@ -975,6 +1245,21 @@ libio18f8585_a_SOURCES += usart/uopen.c usart/uputc.c usart/uputs.c
 libio18f8585_a_SOURCES += usart/usartd.c
 libio18f8585_a_CFLAGS = -p18f8585 $(AM_CFLAGS)
 
+lib_LIBRARIES += libio18f85j50.a
+libio18f85j50_a_SOURCES = dummy.c
+libio18f85j50_a_SOURCES += adc/adcbusy.c adc/adcclose.c adc/adcconv.c
+libio18f85j50_a_SOURCES += adc/adcopen.c adc/adcread.c adc/adcsetch.c
+libio18f85j50_a_SOURCES += i2c/i2cack.c i2c/i2cclose.c i2c/i2cdrdy.c
+libio18f85j50_a_SOURCES += i2c/i2cidle.c i2c/i2cnack.c i2c/i2copen.c
+libio18f85j50_a_SOURCES += i2c/i2creadc.c i2c/i2creads.c i2c/i2crestart.c
+libio18f85j50_a_SOURCES += i2c/i2cstart.c i2c/i2cstop.c i2c/i2cwritec.c
+libio18f85j50_a_SOURCES += i2c/i2cwrites.c
+libio18f85j50_a_SOURCES += usart/ubaud.c usart/ubusy.c usart/uclose.c
+libio18f85j50_a_SOURCES += usart/udrdy.c usart/ugetc.c usart/ugets.c
+libio18f85j50_a_SOURCES += usart/uopen.c usart/uputc.c usart/uputs.c
+libio18f85j50_a_SOURCES += usart/usartd.c
+libio18f85j50_a_CFLAGS = -p18f85j50 $(AM_CFLAGS)
+
 lib_LIBRARIES += libio18f8620.a
 libio18f8620_a_SOURCES = dummy.c
 libio18f8620_a_SOURCES += adc/adcbusy.c adc/adcclose.c adc/adcconv.c
@@ -1005,6 +1290,36 @@ libio18f8680_a_SOURCES += usart/uopen.c usart/uputc.c usart/uputs.c
 libio18f8680_a_SOURCES += usart/usartd.c
 libio18f8680_a_CFLAGS = -p18f8680 $(AM_CFLAGS)
 
+lib_LIBRARIES += libio18f86j50.a
+libio18f86j50_a_SOURCES = dummy.c
+libio18f86j50_a_SOURCES += adc/adcbusy.c adc/adcclose.c adc/adcconv.c
+libio18f86j50_a_SOURCES += adc/adcopen.c adc/adcread.c adc/adcsetch.c
+libio18f86j50_a_SOURCES += i2c/i2cack.c i2c/i2cclose.c i2c/i2cdrdy.c
+libio18f86j50_a_SOURCES += i2c/i2cidle.c i2c/i2cnack.c i2c/i2copen.c
+libio18f86j50_a_SOURCES += i2c/i2creadc.c i2c/i2creads.c i2c/i2crestart.c
+libio18f86j50_a_SOURCES += i2c/i2cstart.c i2c/i2cstop.c i2c/i2cwritec.c
+libio18f86j50_a_SOURCES += i2c/i2cwrites.c
+libio18f86j50_a_SOURCES += usart/ubaud.c usart/ubusy.c usart/uclose.c
+libio18f86j50_a_SOURCES += usart/udrdy.c usart/ugetc.c usart/ugets.c
+libio18f86j50_a_SOURCES += usart/uopen.c usart/uputc.c usart/uputs.c
+libio18f86j50_a_SOURCES += usart/usartd.c
+libio18f86j50_a_CFLAGS = -p18f86j50 $(AM_CFLAGS)
+
+lib_LIBRARIES += libio18f86j55.a
+libio18f86j55_a_SOURCES = dummy.c
+libio18f86j55_a_SOURCES += adc/adcbusy.c adc/adcclose.c adc/adcconv.c
+libio18f86j55_a_SOURCES += adc/adcopen.c adc/adcread.c adc/adcsetch.c
+libio18f86j55_a_SOURCES += i2c/i2cack.c i2c/i2cclose.c i2c/i2cdrdy.c
+libio18f86j55_a_SOURCES += i2c/i2cidle.c i2c/i2cnack.c i2c/i2copen.c
+libio18f86j55_a_SOURCES += i2c/i2creadc.c i2c/i2creads.c i2c/i2crestart.c
+libio18f86j55_a_SOURCES += i2c/i2cstart.c i2c/i2cstop.c i2c/i2cwritec.c
+libio18f86j55_a_SOURCES += i2c/i2cwrites.c
+libio18f86j55_a_SOURCES += usart/ubaud.c usart/ubusy.c usart/uclose.c
+libio18f86j55_a_SOURCES += usart/udrdy.c usart/ugetc.c usart/ugets.c
+libio18f86j55_a_SOURCES += usart/uopen.c usart/uputc.c usart/uputs.c
+libio18f86j55_a_SOURCES += usart/usartd.c
+libio18f86j55_a_CFLAGS = -p18f86j55 $(AM_CFLAGS)
+
 lib_LIBRARIES += libio18f86j60.a
 libio18f86j60_a_SOURCES = dummy.c
 libio18f86j60_a_SOURCES += adc/adcbusy.c adc/adcclose.c adc/adcconv.c
@@ -1050,6 +1365,21 @@ libio18f8720_a_SOURCES += usart/uopen.c usart/uputc.c usart/uputs.c
 libio18f8720_a_SOURCES += usart/usartd.c
 libio18f8720_a_CFLAGS = -p18f8720 $(AM_CFLAGS)
 
+lib_LIBRARIES += libio18f87j50.a
+libio18f87j50_a_SOURCES = dummy.c
+libio18f87j50_a_SOURCES += adc/adcbusy.c adc/adcclose.c adc/adcconv.c
+libio18f87j50_a_SOURCES += adc/adcopen.c adc/adcread.c adc/adcsetch.c
+libio18f87j50_a_SOURCES += i2c/i2cack.c i2c/i2cclose.c i2c/i2cdrdy.c
+libio18f87j50_a_SOURCES += i2c/i2cidle.c i2c/i2cnack.c i2c/i2copen.c
+libio18f87j50_a_SOURCES += i2c/i2creadc.c i2c/i2creads.c i2c/i2crestart.c
+libio18f87j50_a_SOURCES += i2c/i2cstart.c i2c/i2cstop.c i2c/i2cwritec.c
+libio18f87j50_a_SOURCES += i2c/i2cwrites.c
+libio18f87j50_a_SOURCES += usart/ubaud.c usart/ubusy.c usart/uclose.c
+libio18f87j50_a_SOURCES += usart/udrdy.c usart/ugetc.c usart/ugets.c
+libio18f87j50_a_SOURCES += usart/uopen.c usart/uputc.c usart/uputs.c
+libio18f87j50_a_SOURCES += usart/usartd.c
+libio18f87j50_a_CFLAGS = -p18f87j50 $(AM_CFLAGS)
+
 lib_LIBRARIES += libio18f87j60.a
 libio18f87j60_a_SOURCES = dummy.c
 libio18f87j60_a_SOURCES += adc/adcbusy.c adc/adcclose.c adc/adcconv.c
index 9486da86e2f13f8650ac417c6aca735ea8820221..1636240041b40e0c23740f59f9f5726539194ffc 100644 (file)
@@ -25,6 +25,9 @@
 
 char adc_busy(void) __naked
 {
+#if defined(__SDCC_ADC_STYLE65J50)
+  WDTCONbits.ADSHR = 0; /* access ADCON0/1 */
+#endif
 #if 0
   return (ADCON0bits.GO);
 #else
@@ -32,7 +35,9 @@ char adc_busy(void) __naked
     movlw       0x00
 #if defined(__SDCC_ADC_STYLE242)
     btfsc       _ADCON0bits, 2
-#elif defined(__SDCC_ADC_STYLE1220) || defined(__SDCC_ADC_STYLE2220)
+#elif defined(__SDCC_ADC_STYLE1220) \
+   || defined(__SDCC_ADC_STYLE2220) \
+   || defined(__SDCC_ADC_STYLE65J50)
     btfsc       _ADCON0bits, 1
 #else /* unsupported ADC style */
 #error Unsupported ADC style.
index 9a287aae1749788368a69f0d23eb132f29220a81..9153fe0b0aff9b04721a73b18d552159ccc583cf 100644 (file)
@@ -25,6 +25,9 @@
 
 void adc_close(void)
 {
+#if defined(__SDCC_ADC_STYLE65J50)
+  WDTCONbits.ADSHR = 0; /* access ADCON0/1 */
+#endif
   ADCON0bits.ADON = 0;
   PIE1bits.ADIE = 0;
 }
index ded0722754b9d0dc599bee784b1a0e8564c9ce24..cbbd8a838d0f63cdfd505512bbf5c42b997cbfc9 100644 (file)
@@ -25,6 +25,9 @@
 
 void adc_conv(void)
 {
+#if defined(__SDCC_ADC_STYLE65J50)
+  WDTCONbits.ADSHR = 0; /* access ADCON0/1 */
+#endif
   ADCON0bits.GO = 1;
 }
 
index 846c8f0b1786dd56bd4802f6b796033a10ec2c31..35beadd81c32a9c3cd58dae78e53ef04dbef6013 100644 (file)
 #include <adc.h>
 
 
-/* parameters are:
+/*
+ * parameters are:
  *   channel: one of ADC_CHN_*
- *   fosc:    one of ADC_FOSC_*
- *   pcfg:    one of ADC_CFG_* (a bitmask with set bits denoting digital ports for 242-style)
+ *   fosc:    one of ADC_FOSC_* | ADC_ACQT_* | ADC_CAL
+ *   pcfg:    one of ADC_CFG_* (a bitmask with set bits denoting digital ports for 1220/65j50-style)
  *   config:  ADC_FRM_* | ADC_INT_* | ADC_VCFG_*
  */
 
+#if defined(__SDCC_ADC_STYLE65J50)
+void adc_open(unsigned char channel, unsigned char fosc, unsigned int pcfg, unsigned char config)
+#else
 void adc_open(unsigned char channel, unsigned char fosc, unsigned char pcfg, unsigned char config)
+#endif
 {
   /* disable ADC */
+#if defined(__SDCC_ADC_STYLE65J50)
+  WDTCONbits.ADSHR = 0; /* access ADCON0/1 */
+#endif
   ADCON0 = 0;
 
 #if defined(__SDCC_ADC_STYLE242)
@@ -51,6 +59,13 @@ void adc_open(unsigned char channel, unsigned char fosc, unsigned char pcfg, uns
    * but we retain compatibility for now ... */
   ADCON1 = (pcfg & 0x3f) | (config & ADC_VCFG_AN3_AN2);
   ADCON2 = (ADCON2 & 0x38) | (fosc & 0x07) | (config & ADC_FRM_RJUST);
+#elif defined(__SDCC_ADC_STYLE65J50)
+  WDTCONbits.ADSHR = 1; /* access ANCON0/1 */
+  ANCON0 = pcfg;
+  ANCON1 = (pcfg >> 8);
+  WDTCONbits.ADSHR = 0; /* access ADCON0/1 */
+  ADCON0 = ((channel & 0x0f) << 2) | ((config & ADC_VCFG_AN3_AN2) << 2);
+  ADCON1 = (config & ADC_FRM_RJUST) | (fosc & 0x7f);
 #else /* unsupported ADC style */
 #error Unsupported ADC style.
 #endif
index f61200a1b6c042a4dc41b58bdd4e9fe96f9612fd..0daffb11e71eccb5830e0b6689a5c860b05a688a 100644 (file)
@@ -31,6 +31,9 @@ void adc_setchannel(unsigned char channel)
   ADCON0 = (ADCON0 & ~(0x07 << 2)) | ((channel & 0x07) << 2);
 #elif defined(__SDCC_ADC_STYLE2220)
   ADCON0 = (ADCON0 & ~(0x0f << 2)) | ((channel & 0x0f) << 2);
+#elif defined(__SDCC_ADC_STYLE65J50)
+  WDTCONbits.ADSHR = 0; /* access ADCON0/1 */
+  ADCON0 = (ADCON0 & ~(0x0f << 2)) | ((channel & 0x0f) << 2);
 #else /* unsupported ADC style */
 #error Unsupported ADC style.
 #endif
index 71b65cb5cd3f5cae292d9a29119b96212890b7bb..1ff8ed9cb4895dc29a1d7c6673729cb099c5db1a 100644 (file)
 1320
 
 2220
-#2221 # not in gputils (2008-11-10)
+2221
 2320
 2321
 2331
+23k20
 2410
 2420
-#2423 # not in gputils (2008-11-10)
+2423
 2431
 2450
 2455
 2480
 24j10
-#2510 # gplib aborts: invalid rom width for selected processor (8) in "libdev18f2510_a-pic18f2510.o" (2008-11-10)
+24k20
+2510
 2515
 2520
 2523
 2580
 2585
 25j10
+25k20
 2610
 2620
 2680
 2682
 2685
+26k20
 
 4220
-#4221 # not in gputils (2008-11-10)
+4221
 4320
 4321
 4331
+43k20
 4410
 4420
-#4423 # not in gputils (2008-11-10)
+4423
 4431
 4450
 4455
 4480
 44j10
+44k20
 4510
 4515
 4520
-#4523 # not in gputils (2008-11-10)
+4523
 4525
 4550
 4580
 4585
 45j10
+45k20
 4610
 4620
 4680
 4682
 4685
+46k20
 
 6520
 6585
+65j50
 6620
 6680
+66j50
+66j55
 66j60
 66j65
 6720
+67j50
 67j60
 
 8520
 8585
+85j50
 8620
 8680
+86j50
+86j55
 86j60
 86j65
 8720
+87j50
 87j60
 
 96j60
index e60f1343e79cc7748165e7c1f4d6e5e10f2a1905..95d34d9a1b49306b219d1bb063bc643da542b23c 100644 (file)
@@ -1,4 +1,4 @@
-#LyX 1.5.7 created this file. For more info see http://www.lyx.org/
+#LyX 1.5.6 created this file. For more info see http://www.lyx.org/
 \lyxformat 276
 \begin_document
 \begin_header
@@ -22480,7 +22480,7 @@ name "heap (malloc)"
 \begin_layout Verse
 
 \family typewriter
-sdcc -c _heap.c -D HEAD_SIZE=2048
+sdcc -c _heap.c -D HEAP_SIZE=2048
 \end_layout
 
 \begin_layout Standard
@@ -25745,31 +25745,45 @@ name "PIC"
 \end_layout
 
 \begin_layout Standard
-18F: 2220, 2221, 2320, 2321, 2331, 2410, 2420, 2423, 2431, 2450, 2455, 2480,
- 24j10
+18F: 2220, 2221, 2320, 2321, 2331, 23k20
 \end_layout
 
 \begin_layout Standard
-18F: (2510,) 2515, 2520, 2523, 2525, 2550, 2580, 2585, 25j10, 2610, 2620,
- 2680, 2682, 2685
+18F: 2410, 2420, 2423, 2431, 2450, 2455, 2480, 24j10, 24k20
 \end_layout
 
 \begin_layout Standard
-18F: 4220, 4221, 4320, 4321, 4331, 4410, 4420, 4423, 4431, 4450, 4455, 4480,
- 44j10
+18F: 2510, 2515, 2520, 2523, 2525, 2550, 2580, 2585, 25j10, 25k20
 \end_layout
 
 \begin_layout Standard
-18F: 4510, 4515, 4520, 4523, 4525, 4550, 4580, 4585, 45j10, 4610, 4620,
- 4680, 4682, 4685
+18F: 2610, 2620, 2680, 2682, 2685
 \end_layout
 
 \begin_layout Standard
-18F: 6520, 6585, 6620, 6680, 66j60, 66j65, 6720, 67j60
+18F: 4220, 4221, 4320, 4321, 4331, 43k20
 \end_layout
 
 \begin_layout Standard
-18F: 8520, 8585, 8620, 8680, 86j60, 86j65, 8720, 87j60
+18F: 4410, 4420, 4423, 4431, 4450, 4455, 4480, 44j10, 44k20
+\end_layout
+
+\begin_layout Standard
+18F: 4510, 4515, 4520, 4523, 4525, 4550, 4580, 4585, 45j10, 45k20
+\end_layout
+
+\begin_layout Standard
+18F: 4610, 4620, 4680, 4682, 4685, 46k20
+\end_layout
+
+\begin_layout Standard
+18F: 6520, 6585, 65j50, 6620, 6680, 66j50, 66j55, 66j60, 66j65, 6720, 67j50,
+ 67j60
+\end_layout
+
+\begin_layout Standard
+18F: 8520, 8585, 85j50, 8620, 8680, 86j50, 86j55, 86j60, 86j65, 8720, 87j50,
+ 87j60
 \end_layout
 
 \begin_layout Standard