* device/include/pic16/pic18f66j60.h,
authortecodev <tecodev@4a8a32a2-be11-0410-ad9d-d568d2c75423>
Sat, 21 Jun 2008 21:36:29 +0000 (21:36 +0000)
committertecodev <tecodev@4a8a32a2-be11-0410-ad9d-d568d2c75423>
Sat, 21 Jun 2008 21:36:29 +0000 (21:36 +0000)
* device/include/pic16/pic18f66j65.h,
* device/include/pic16/pic18f67j60.h,
* device/include/pic16/pic18f86j60.h,
* device/include/pic16/pic18f86j65.h,
* device/include/pic16/pic18f87j60.h,
* device/include/pic16/pic18f96j60.h,
* device/include/pic16/pic18f96j65.h,
* device/include/pic16/pic18f97j60.h,
* device/lib/pic16/libdev/pic18f66j60.c,
* device/lib/pic16/libdev/pic18f66j65.c,
* device/lib/pic16/libdev/pic18f67j60.c,
* device/lib/pic16/libdev/pic18f86j60.c,
* device/lib/pic16/libdev/pic18f86j65.c,
* device/lib/pic16/libdev/pic18f87j60.c,
* device/lib/pic16/libdev/pic18f96j60.c,
* device/lib/pic16/libdev/pic18f96j65.c,
* device/lib/pic16/libdev/pic18f97j60.c,
* device/include/pic16/pic16devices.txt,
* device/include/pic16/pic18fregs.h,
* device/lib/pic16/pics.all: added new devices

* device/include/pic16/adc.h,
* device/lib/pic16/libio/adc/adcbusy.c,
* device/lib/pic16/libio/adc/adcopen.c,
* device/lib/pic16/libio/adc/adcsetch.c,
* device/lib/pic16/libio/i2c/i2copen.c,
* device/lib/pic16/libio/usart/uopen.c: adapted to new devices,
  all changes from a patch by Anton Strobl

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

28 files changed:
ChangeLog
device/include/pic16/adc.h
device/include/pic16/pic16devices.txt
device/include/pic16/pic18f66j60.h [new file with mode: 0644]
device/include/pic16/pic18f66j65.h [new file with mode: 0644]
device/include/pic16/pic18f67j60.h [new file with mode: 0644]
device/include/pic16/pic18f86j60.h [new file with mode: 0644]
device/include/pic16/pic18f86j65.h [new file with mode: 0644]
device/include/pic16/pic18f87j60.h [new file with mode: 0644]
device/include/pic16/pic18f96j60.h [new file with mode: 0644]
device/include/pic16/pic18f96j65.h [new file with mode: 0644]
device/include/pic16/pic18f97j60.h [new file with mode: 0644]
device/include/pic16/pic18fregs.h
device/lib/pic16/libdev/pic18f66j60.c [new file with mode: 0644]
device/lib/pic16/libdev/pic18f66j65.c [new file with mode: 0644]
device/lib/pic16/libdev/pic18f67j60.c [new file with mode: 0644]
device/lib/pic16/libdev/pic18f86j60.c [new file with mode: 0644]
device/lib/pic16/libdev/pic18f86j65.c [new file with mode: 0644]
device/lib/pic16/libdev/pic18f87j60.c [new file with mode: 0644]
device/lib/pic16/libdev/pic18f96j60.c [new file with mode: 0644]
device/lib/pic16/libdev/pic18f96j65.c [new file with mode: 0644]
device/lib/pic16/libdev/pic18f97j60.c [new file with mode: 0644]
device/lib/pic16/libio/adc/adcbusy.c
device/lib/pic16/libio/adc/adcopen.c
device/lib/pic16/libio/adc/adcsetch.c
device/lib/pic16/libio/i2c/i2copen.c
device/lib/pic16/libio/usart/uopen.c
device/lib/pic16/pics.all

index 28372e8f6ea6e91acdbfb6af3099c901c3411008..c215dee1e2fd8b6b0551c75c965394d3e054fb1a 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,35 @@
+2008-06-21 Raphael Neider <rneider AT web.de>
+
+       * device/include/pic16/pic18f66j60.h,
+       * device/include/pic16/pic18f66j65.h,
+       * device/include/pic16/pic18f67j60.h,
+       * device/include/pic16/pic18f86j60.h,
+       * device/include/pic16/pic18f86j65.h,
+       * device/include/pic16/pic18f87j60.h,
+       * device/include/pic16/pic18f96j60.h,
+       * device/include/pic16/pic18f96j65.h,
+       * device/include/pic16/pic18f97j60.h,
+       * device/lib/pic16/libdev/pic18f66j60.c,
+       * device/lib/pic16/libdev/pic18f66j65.c,
+       * device/lib/pic16/libdev/pic18f67j60.c,
+       * device/lib/pic16/libdev/pic18f86j60.c,
+       * device/lib/pic16/libdev/pic18f86j65.c,
+       * device/lib/pic16/libdev/pic18f87j60.c,
+       * device/lib/pic16/libdev/pic18f96j60.c,
+       * device/lib/pic16/libdev/pic18f96j65.c,
+       * device/lib/pic16/libdev/pic18f97j60.c,
+       * device/include/pic16/pic16devices.txt,
+       * device/include/pic16/pic18fregs.h,
+       * device/lib/pic16/pics.all: added new devices
+
+       * device/include/pic16/adc.h,
+       * device/lib/pic16/libio/adc/adcbusy.c,
+       * device/lib/pic16/libio/adc/adcopen.c,
+       * device/lib/pic16/libio/adc/adcsetch.c,
+       * device/lib/pic16/libio/i2c/i2copen.c,
+       * device/lib/pic16/libio/usart/uopen.c: adapted to new devices,
+         all changes from a patch by Anton Strobl
+
 2008-06-12 Borut Razem <borut.razem AT siol.net>
 
        * sim/ucsim/cmd.src/info.cc, sim/ucsim/cmd.src/bp.cc,
index 0d77eaa5aac5d8a8f83bef8789351961ef1f947c..32303276a3d4eaf9a2aa1bc3826d91f689e4d042 100644 (file)
 
 #define __SDCC_ADC_STYLE2455    1
 
+// 97j60 family
+#elif  defined(pic18f66j60) || defined(pic18f66j65) || defined(pic18f67j60) \
+    || defined(pic18f86j60) || defined(pic18f86j65) || defined(pic18f87j60) \
+    || defined(pic18f96j60) || defined(pic18f96j65) || defined(pic18f97j60) \
+
+#define __SDCC_ADC_STYLE97J60   1
+
 // small ADC device?
 #elif  defined(pic18f242) || defined(pic18f252) || defined(pic18f442) || defined(pic18f452) \
     || defined(pic18f248) || defined(pic18f258) || defined(pic18f448) || defined(pic18f458)
@@ -86,8 +93,7 @@
 
 
 /* channel selection */
-#if defined(__SDCC_ADC_STYLE2455)
-
+#if defined(__SDCC_ADC_STYLE2455) || defined(__SDCC_ADC_STYLE97J60)
 #define ADC_CHN_0               0x00
 #define ADC_CHN_1               0x01
 #define ADC_CHN_2               0x02
 #define ADC_CHN_10              0x0a
 #define ADC_CHN_11              0x0b
 #define ADC_CHN_12              0x0c
+#if defined(__SDCC_ADC_STYLE97J60) // 97j60 family has 2 more ADC ports
+#define ADC_CHN_13              0x0d
+#define ADC_CHN_14              0x0e
+#define ADC_CHN_15              0x0f
+#endif
 
 #else   /* all other devices */
 
 
 
 /* reference and pin configuration */
-#if defined(__SDCC_ADC_STYLE2455)
-
+#if defined(__SDCC_ADC_STYLE2455) || defined(__SDCC_ADC_STYLE97J60)
+
+// 97j60 family has 2 more possible ADC configs
+#if defined(__SDCC_ADC_STYLE97J60) // 97j60 family has 2 more ADC ports
+#define ADC_CFG_16A_0R  0x00
+#define ADC_CFG_16A_1R  0x10
+#define ADC_CFG_16A_2R  0x30
+#define ADC_CFG_15A_0R  0x00   // can switch only from 14 analog ports to 16 enabled analog ports
+#define ADC_CFG_15A_1R  0x10
+#define ADC_CFG_15A_2R  0x30
+#define ADC_CFG_14A_0R  0x01
+#define ADC_CFG_14A_1R  0x11
+#define ADC_CFG_14A_2R  0x31
+#define ADC_CFG_13A_0R  0x02
+#define ADC_CFG_13A_1R  0x12
+#define ADC_CFG_13A_2R  0x32
+#else
 #define ADC_CFG_13A_0R  0x01
 #define ADC_CFG_13A_1R  0x11
 #define ADC_CFG_13A_2R  0x31
+#endif
 #define ADC_CFG_12A_0R  0x03
 #define ADC_CFG_12A_1R  0x13
 #define ADC_CFG_12A_2R  0x33
index cb08acfd25305de961767cd251298e65b4c9a323..fdb4dd6dc01ae1732e11809d5ff48cbf5978b3a8 100644 (file)
@@ -525,3 +525,62 @@ using       18f6520
 ramsize     3840
 
 
+name        18f66j60
+ramsize     4096
+split       0x60
+configrange 0xfff8 0xfffd
+configword  0xfff8 0xc1 0xff
+configword  0xfff9 0x04 0xf7
+configword  0xfffa 0xc7 0xff
+configword  0xfffb 0x0f 0xff
+configword  0xfffc 0xf8 0xff
+configword  0xfffd 0x07 0xff
+
+
+name        18f66j65
+ramsize     4096
+split       0x60
+configrange 0x17ff8 0x17ffd
+configword  0x17ff8 0xc1 0xff
+configword  0x17ff9 0x04 0xf7
+configword  0x17ffa 0xc7 0xff
+configword  0x17ffb 0x0f 0xff
+configword  0x17ffc 0xf8 0xff
+configword  0x17ffd 0x07 0xff
+
+
+name        18f67j60
+ramsize     4096
+split       0x60
+configrange 0x1fff8 0x1fffd
+configword  0x1fff8 0xc1 0xff
+configword  0x1fff9 0x04 0xf7
+configword  0x1fffa 0xc7 0xff
+configword  0x1fffb 0x0f 0xff
+configword  0x1fffc 0xf8 0xff
+configword  0x1fffd 0x07 0xff
+
+
+name        18f86j60
+using       18f66j60
+
+
+name        18f86j65
+using       18f66j65
+
+
+name        18f87j60
+using       18f67j60
+
+
+name        18f96j60
+using       18f66j60
+
+
+name        18f96j65
+using       18f66j65
+
+
+name        18f97j60
+using       18f67j60
+
diff --git a/device/include/pic16/pic18f66j60.h b/device/include/pic16/pic18f66j60.h
new file mode 100644 (file)
index 0000000..c265252
--- /dev/null
@@ -0,0 +1,2696 @@
+/*
+ * pic18f66j60.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 __PIC18F66J60_H__
+#define __PIC18F66J60_H__ 1
+
+#define        _DEVID1                 0x3FFFFE
+#define        _DEVID2                 0x3FFFFF
+
+extern __sfr __at (0xE80) MAADR5;
+
+extern __sfr __at (0xE81) MAADR6;
+
+extern __sfr __at (0xE82) MAADR3;
+
+extern __sfr __at (0xE83) MAADR4;
+
+extern __sfr __at (0xE84) MAADR1;
+
+extern __sfr __at (0xE85) MAADR2;
+
+extern __sfr __at (0xE86) EBSTSD;
+
+extern __sfr __at (0xE87) EBSTCON;
+typedef union {
+       struct {
+               unsigned BISTST         : 1;
+               unsigned TME            : 1;
+               unsigned TMSEL0         : 1;
+               unsigned TMSEL1         : 1;
+               unsigned                : 1;
+               unsigned PSV0           : 1;
+               unsigned PSV1           : 1;
+               unsigned PSV2           : 1;
+       };
+       struct {
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned TMSEL          : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned PSV            : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+       };
+} __EBSTCONbits_t;
+extern volatile __EBSTCONbits_t __at (0xE87) EBSTCONbits;
+
+extern __sfr __at (0xE88) EBSTCS;
+
+extern __sfr __at (0xE88) EBSTCSL;
+
+extern __sfr __at (0xE89) EBSTCSH;
+
+extern __sfr __at (0xE8A) MISTAT;
+typedef union {
+       struct {
+               unsigned BUSY           : 1;
+               unsigned SCAN           : 1;
+               unsigned NVALID         : 1;
+               unsigned LINKFL         : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+       };
+} __MISTATbits_t;
+extern volatile __MISTATbits_t __at (0xE8A) MISTATbits;
+
+extern __sfr __at (0xE97) EFLOCON;
+typedef union {
+       struct {
+               unsigned FCEN0          : 1;
+               unsigned FCEN1          : 1;
+               unsigned FULDPXS        : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+       };
+} __EFLOCONbits_t;
+extern volatile __EFLOCONbits_t __at (0xE97) EFLOCONbits;
+
+extern __sfr __at (0xE98) EPAUS;
+
+extern __sfr __at (0xE98) EPAUSL;
+
+extern __sfr __at (0xE99) EPAUSH;
+
+extern __sfr __at (0xEA0) MACON1;
+typedef union {
+       struct {
+               unsigned MARXEN         : 1;
+               unsigned PASSALL        : 1;
+               unsigned RXPAUS         : 1;
+               unsigned TXPAUS         : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+       };
+} __MACON1bits_t;
+extern volatile __MACON1bits_t __at (0xEA0) MACON1bits;
+
+extern __sfr __at (0xEA1) MACON2;
+typedef union {
+       struct {
+               unsigned TFUNRST        : 1;
+               unsigned MATXRST        : 1;
+               unsigned RFUNRST        : 1;
+               unsigned MARXRST        : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned RNDRST         : 1;
+               unsigned MARST          : 1;
+       };
+} __MACON2bits_t;
+extern volatile __MACON2bits_t __at (0xEA1) MACON2bits;
+
+extern __sfr __at (0xEA2) MACON3;
+typedef union {
+       struct {
+               unsigned FULDPX         : 1;
+               unsigned FRMLNEN        : 1;
+               unsigned HFRMEN         : 1;
+               unsigned PHDRLEN        : 1;
+               unsigned TXCRCEN        : 1;
+               unsigned PADCFG0        : 1;
+               unsigned PADCFG1        : 1;
+               unsigned PADCFG2        : 1;
+       };
+       struct {
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned PADCFG         : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+       };
+} __MACON3bits_t;
+extern volatile __MACON3bits_t __at (0xEA2) MACON3bits;
+
+extern __sfr __at (0xEA3) MACON4;
+typedef union {
+       struct {
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned NOBKOFF        : 1;
+               unsigned BPEN           : 1;
+               unsigned DEFER          : 1;
+               unsigned                : 1;
+       };
+} __MACON4bits_t;
+extern volatile __MACON4bits_t __at (0xEA3) MACON4bits;
+
+extern __sfr __at (0xEA4) MABBIPG;
+
+extern __sfr __at (0xEA6) MAIPG;
+
+extern __sfr __at (0xEA6) MAIPGL;
+
+extern __sfr __at (0xEA7) MAIPGH;
+
+extern __sfr __at (0xEA8) MACLCON1;
+typedef union {
+       struct {
+               unsigned RETMAX         : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+       };
+} __MACLCON1bits_t;
+extern volatile __MACLCON1bits_t __at (0xEA8) MACLCON1bits;
+
+extern __sfr __at (0xEA9) MACLCON2;
+typedef union {
+       struct {
+               unsigned COLWIN         : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+       };
+} __MACLCON2bits_t;
+extern volatile __MACLCON2bits_t __at (0xEA9) MACLCON2bits;
+
+extern __sfr __at (0xEAA) MAMXFL;
+
+extern __sfr __at (0xEAA) MAMXFLL;
+
+extern __sfr __at (0xEAB) MAMXFLH;
+
+extern __sfr __at (0xEB1) MICON;
+typedef union {
+       struct {
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned RSTMII         : 1;
+       };
+} __MICONbits_t;
+extern volatile __MICONbits_t __at (0xEB1) MICONbits;
+
+extern __sfr __at (0xEB2) MICMD;
+typedef union {
+       struct {
+               unsigned MIIRD          : 1;
+               unsigned MIISCAN        : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+       };
+} __MICMDbits_t;
+extern volatile __MICMDbits_t __at (0xEB2) MICMDbits;
+
+extern __sfr __at (0xEB4) MIREGADR;
+
+extern __sfr __at (0xEB6) MIWR;
+
+extern __sfr __at (0xEB6) MIWRL;
+
+extern __sfr __at (0xEB7) MIWRH;
+
+extern __sfr __at (0xEB8) MIRD;
+
+extern __sfr __at (0xEB8) MIRDL;
+
+extern __sfr __at (0xEB9) MIRDH;
+
+extern __sfr __at (0xEC0) EHT0;
+
+extern __sfr __at (0xEC1) EHT1;
+
+extern __sfr __at (0xEC2) EHT2;
+
+extern __sfr __at (0xEC3) EHT3;
+
+extern __sfr __at (0xEC4) EHT4;
+
+extern __sfr __at (0xEC5) EHT5;
+
+extern __sfr __at (0xEC6) EHT6;
+
+extern __sfr __at (0xEC7) EHT7;
+
+extern __sfr __at (0xEC8) EPMM0;
+
+extern __sfr __at (0xEC9) EPMM1;
+
+extern __sfr __at (0xECA) EPMM2;
+
+extern __sfr __at (0xECB) EPMM3;
+
+extern __sfr __at (0xECC) EPMM4;
+
+extern __sfr __at (0xECD) EPMM5;
+
+extern __sfr __at (0xECE) EPMM6;
+
+extern __sfr __at (0xECF) EPMM7;
+
+extern __sfr __at (0xED0) EPMCS;
+
+extern __sfr __at (0xED0) EPMCSL;
+
+extern __sfr __at (0xED1) EPMCSH;
+
+extern __sfr __at (0xED4) EPMO;
+
+extern __sfr __at (0xED4) EPMOL;
+
+extern __sfr __at (0xED5) EPMOH;
+
+extern __sfr __at (0xED6) EWOLIE;
+typedef union {
+       struct {
+               unsigned BCWOLIE        : 1;
+               unsigned MCWOLIE        : 1;
+               unsigned HTWOLIE        : 1;
+               unsigned MPWOLIE        : 1;
+               unsigned PMWOLIE        : 1;
+               unsigned                : 1;
+               unsigned AWOLIE         : 1;
+               unsigned UCWOLIE        : 1;
+       };
+} __EWOLIEbits_t;
+extern volatile __EWOLIEbits_t __at (0xED6) EWOLIEbits;
+
+extern __sfr __at (0xED7) EWOLIR;
+typedef union {
+       struct {
+               unsigned BCWOLIF        : 1;
+               unsigned MCWOLIF        : 1;
+               unsigned HTWOLIF        : 1;
+               unsigned MPWOLIF        : 1;
+               unsigned PMWOLIF        : 1;
+               unsigned                : 1;
+               unsigned AWOLIF         : 1;
+               unsigned UCWOLIF        : 1;
+       };
+} __EWOLIRbits_t;
+extern volatile __EWOLIRbits_t __at (0xED7) EWOLIRbits;
+
+extern __sfr __at (0xED8) ERXFCON;
+typedef union {
+       struct {
+               unsigned BCEN           : 1;
+               unsigned MCEN           : 1;
+               unsigned HTEN           : 1;
+               unsigned MPEN           : 1;
+               unsigned PMEN           : 1;
+               unsigned CRCEN          : 1;
+               unsigned ANDOR          : 1;
+               unsigned UCEN           : 1;
+       };
+} __ERXFCONbits_t;
+extern volatile __ERXFCONbits_t __at (0xED8) ERXFCONbits;
+
+extern __sfr __at (0xED9) EPKTCNT;
+
+extern __sfr __at (0xEE2) EWRPT;
+
+extern __sfr __at (0xEE2) EWRPTL;
+
+extern __sfr __at (0xEE3) EWRPTH;
+
+extern __sfr __at (0xEE4) ETXST;
+
+extern __sfr __at (0xEE4) ETXSTL;
+
+extern __sfr __at (0xEE5) ETXSTH;
+
+extern __sfr __at (0xEE6) ETXND;
+
+extern __sfr __at (0xEE6) ETXNDL;
+
+extern __sfr __at (0xEE7) ETXNDH;
+
+extern __sfr __at (0xEE8) ERXST;
+
+extern __sfr __at (0xEE8) ERXSTL;
+
+extern __sfr __at (0xEE9) ERXSTH;
+
+extern __sfr __at (0xEEA) ERXND;
+
+extern __sfr __at (0xEEA) ERXNDL;
+
+extern __sfr __at (0xEEB) ERXNDH;
+
+extern __sfr __at (0xEEC) ERXRDPT;
+
+extern __sfr __at (0xEEC) ERXRDPTL;
+
+extern __sfr __at (0xEED) ERXRDPTH;
+
+extern __sfr __at (0xEEE) ERXWRPT;
+
+extern __sfr __at (0xEEE) ERXWRPTL;
+
+extern __sfr __at (0xEEF) ERXWRPTH;
+
+extern __sfr __at (0xEF0) EDMAST;
+
+extern __sfr __at (0xEF0) EDMASTL;
+
+extern __sfr __at (0xEF1) EDMASTH;
+
+extern __sfr __at (0xEF2) EDMAND;
+
+extern __sfr __at (0xEF2) EDMANDL;
+
+extern __sfr __at (0xEF3) EDMANDH;
+
+extern __sfr __at (0xEF4) EDMADST;
+
+extern __sfr __at (0xEF4) EDMADSTL;
+
+extern __sfr __at (0xEF5) EDMADSTH;
+
+extern __sfr __at (0xEF6) EDMACS;
+
+extern __sfr __at (0xEF6) EDMACSL;
+
+extern __sfr __at (0xEF7) EDMACSH;
+
+extern __sfr __at (0xEFB) EIE;
+typedef union {
+       struct {
+               unsigned RXERIE         : 1;
+               unsigned TXERIE         : 1;
+               unsigned                : 1;
+               unsigned TXIE_EIE       : 1;
+               unsigned LINKIE         : 1;
+               unsigned DMAIE          : 1;
+               unsigned PKTIE          : 1;
+               unsigned                : 1;
+       };
+} __EIEbits_t;
+extern volatile __EIEbits_t __at (0xEFB) EIEbits;
+
+extern __sfr __at (0xEFD) ESTAT;
+typedef union {
+       struct {
+               unsigned PHYRDY         : 1;
+               unsigned TXABRT         : 1;
+               unsigned RXBUSY         : 1;
+               unsigned                : 1;
+               unsigned LATECOL        : 1;
+               unsigned                : 1;
+               unsigned BUFER          : 1;
+               unsigned                : 1;
+       };
+} __ESTATbits_t;
+extern volatile __ESTATbits_t __at (0xEFD) ESTATbits;
+
+extern __sfr __at (0xEFE) ECON2;
+typedef union {
+       struct {
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned ETHEN          : 1;
+               unsigned PKTDEC         : 1;
+               unsigned AUTOINC        : 1;
+       };
+} __ECON2bits_t;
+extern volatile __ECON2bits_t __at (0xEFE) ECON2bits;
+
+extern __sfr __at (0xF60) EIR;
+typedef union {
+       struct {
+               unsigned RXERIF         : 1;
+               unsigned TXERIF         : 1;
+               unsigned                : 1;
+               unsigned TXIF_EIR       : 1;
+               unsigned LINKIF         : 1;
+               unsigned DMAIF          : 1;
+               unsigned PKTIF          : 1;
+               unsigned                : 1;
+       };
+} __EIRbits_t;
+extern volatile __EIRbits_t __at (0xF60) EIRbits;
+
+extern __sfr __at (0xF61) EDATA;
+typedef union {
+       struct {
+               unsigned EDATA0         : 1;
+               unsigned EDATA1         : 1;
+               unsigned EDATA2         : 1;
+               unsigned EDATA3         : 1;
+               unsigned EDATA4         : 1;
+               unsigned EDATA5         : 1;
+               unsigned EDATA6         : 1;
+               unsigned EDATA7         : 1;
+       };
+} __EDATAbits_t;
+extern volatile __EDATAbits_t __at (0xF61) EDATAbits;
+
+extern __sfr __at (0xF67) 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 (0xF67) ECCP2DELbits;
+
+extern __sfr __at (0xF68) 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 (0xF68) ECCP2ASbits;
+
+extern __sfr __at (0xF69) 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 (0xF69) ECCP3DELbits;
+
+extern __sfr __at (0xF6A) 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 (0xF6A) ECCP3ASbits;
+
+extern __sfr __at (0xF70) CCP5CON;
+typedef union {
+       struct {
+               unsigned CCP5M0         : 1;
+               unsigned CCP5M1         : 1;
+               unsigned CCP5M2         : 1;
+               unsigned CCP5M3         : 1;
+               unsigned CCP5Y          : 1;
+               unsigned CCP5X          : 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 CCP4Y          : 1;
+               unsigned CCP4X          : 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) PR4;
+
+extern __sfr __at (0xF78) TMR4;
+
+extern __sfr __at (0xF79) 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 (0xF79) ECCP1DELbits;
+
+extern __sfr __at (0xF7A) ERDPT;
+
+extern __sfr __at (0xF7A) ERDPTL;
+
+extern __sfr __at (0xF7B) ERDPTH;
+
+extern __sfr __at (0xF7E) BAUDCON;
+typedef union {
+       struct {
+               unsigned ABDEN          : 1;
+               unsigned WUE            : 1;
+               unsigned                : 1;
+               unsigned BRG16          : 1;
+               unsigned SCKP           : 1;
+               unsigned RXDTP          : 1;
+               unsigned RCMT           : 1;
+               unsigned ABDOVF         : 1;
+       };
+       struct {
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned TXCKP          : 1;
+               unsigned                : 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 RXDTP          : 1;
+               unsigned RCMT           : 1;
+               unsigned ABDOVF         : 1;
+       };
+       struct {
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned TXCKP          : 1;
+               unsigned                : 1;
+               unsigned RCIDL          : 1;
+               unsigned                : 1;
+       };
+} __BAUDCON1bits_t;
+extern volatile __BAUDCON1bits_t __at (0xF7E) BAUDCON1bits;
+
+extern __sfr __at (0xF7E) BAUDCTL;
+typedef union {
+       struct {
+               unsigned ABDEN          : 1;
+               unsigned WUE            : 1;
+               unsigned                : 1;
+               unsigned BRG16          : 1;
+               unsigned SCKP           : 1;
+               unsigned RXDTP          : 1;
+               unsigned RCMT           : 1;
+               unsigned ABDOVF         : 1;
+       };
+       struct {
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned TXCKP          : 1;
+               unsigned                : 1;
+               unsigned RCIDL          : 1;
+               unsigned                : 1;
+       };
+} __BAUDCTLbits_t;
+extern volatile __BAUDCTLbits_t __at (0xF7E) BAUDCTLbits;
+
+extern __sfr __at (0xF7E) BAUDCTL1;
+typedef union {
+       struct {
+               unsigned ABDEN          : 1;
+               unsigned WUE            : 1;
+               unsigned                : 1;
+               unsigned BRG16          : 1;
+               unsigned SCKP           : 1;
+               unsigned RXDTP          : 1;
+               unsigned RCMT           : 1;
+               unsigned ABDOVF         : 1;
+       };
+       struct {
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned TXCKP          : 1;
+               unsigned                : 1;
+               unsigned RCIDL          : 1;
+               unsigned                : 1;
+       };
+} __BAUDCTL1bits_t;
+extern volatile __BAUDCTL1bits_t __at (0xF7E) BAUDCTL1bits;
+
+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                : 1;
+               unsigned                : 1;
+       };
+       struct {
+               unsigned AN0            : 1;
+               unsigned AN1            : 1;
+               unsigned AN2            : 1;
+               unsigned AN3            : 1;
+               unsigned T0CKI          : 1;
+               unsigned AN4            : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+       };
+       struct {
+               unsigned LEDA           : 1;
+               unsigned LEDB           : 1;
+               unsigned VREFM          : 1;
+               unsigned VREFP          : 1;
+               unsigned                : 1;
+               unsigned                : 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                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 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           : 1;
+               unsigned                : 1;
+               unsigned SCL            : 1;
+               unsigned SDA            : 1;
+               unsigned SDO1           : 1;
+               unsigned CK             : 1;
+               unsigned DT             : 1;
+       };
+       struct {
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned SCK1           : 1;
+               unsigned SDI1           : 1;
+               unsigned                : 1;
+               unsigned TX1            : 1;
+               unsigned RX1            : 1;
+       };
+       struct {
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned SCL1           : 1;
+               unsigned SDA1           : 1;
+               unsigned                : 1;
+               unsigned CK1            : 1;
+               unsigned DT1            : 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                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+       };
+       struct {
+               unsigned                : 1;
+               unsigned CCP3           : 1;
+               unsigned CCP4           : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 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                : 1;
+               unsigned                : 1;
+       };
+} __PORTEbits_t;
+extern volatile __PORTEbits_t __at (0xF84) PORTEbits;
+
+extern __sfr __at (0xF85) PORTF;
+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;
+       };
+       struct {
+               unsigned                : 1;
+               unsigned AN6            : 1;
+               unsigned AN7            : 1;
+               unsigned AN8            : 1;
+               unsigned AN9            : 1;
+               unsigned AN10           : 1;
+               unsigned AN11           : 1;
+               unsigned SS             : 1;
+       };
+       struct {
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned CVREF          : 1;
+               unsigned                : 1;
+               unsigned NOT_SS         : 1;
+       };
+       struct {
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned SS1            : 1;
+       };
+       struct {
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned NOT_SS1        : 1;
+       };
+} __PORTFbits_t;
+extern volatile __PORTFbits_t __at (0xF85) PORTFbits;
+
+extern __sfr __at (0xF86) PORTG;
+typedef union {
+       struct {
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned RG4            : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+       };
+       struct {
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned CCP5           : 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 REPU           : 1;
+               unsigned RDPU           : 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                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 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                : 1;
+               unsigned                : 1;
+       };
+} __LATEbits_t;
+extern volatile __LATEbits_t __at (0xF8D) LATEbits;
+
+extern __sfr __at (0xF8E) LATF;
+typedef union {
+       struct {
+               unsigned                : 1;
+               unsigned LATF1          : 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                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 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                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 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                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 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                : 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 TRISE3         : 1;
+               unsigned TRISE4         : 1;
+               unsigned TRISE5         : 1;
+               unsigned                : 1;
+               unsigned                : 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 TRISF1         : 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                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 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                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 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                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned PPRE           : 1;
+               unsigned PPST0          : 1;
+               unsigned PLLEN          : 1;
+               unsigned PPST1          : 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_PIE1      : 1;
+               unsigned RCIE           : 1;
+               unsigned ADIE           : 1;
+               unsigned                : 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_PIR1      : 1;
+               unsigned RCIF           : 1;
+               unsigned ADIF           : 1;
+               unsigned                : 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                : 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                : 1;
+               unsigned BCLIE          : 1;
+               unsigned ETHWIE         : 1;
+               unsigned ETHIE          : 1;
+               unsigned CMIE           : 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                : 1;
+               unsigned BCLIF          : 1;
+               unsigned ETHWIF         : 1;
+               unsigned ETHIF          : 1;
+               unsigned CMIF           : 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                : 1;
+               unsigned BCLIP          : 1;
+               unsigned ETHWIP         : 1;
+               unsigned ETHIP          : 1;
+               unsigned CMIP           : 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                : 1;
+               unsigned                : 1;
+               unsigned BCL2IE         : 1;
+               unsigned                : 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                : 1;
+               unsigned                : 1;
+               unsigned BCL2IF         : 1;
+               unsigned                : 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                : 1;
+               unsigned                : 1;
+               unsigned BCL2IP         : 1;
+               unsigned                : 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                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+       };
+} __EECON1bits_t;
+extern volatile __EECON1bits_t __at (0xFA6) EECON1bits;
+
+extern __sfr __at (0xFA7) EECON2;
+
+extern __sfr __at (0xFAB) RCSTA;
+typedef union {
+       struct {
+               unsigned RX9D           : 1;
+               unsigned OERR           : 1;
+               unsigned FERR           : 1;
+               unsigned ADDEN          : 1;
+               unsigned CREN           : 1;
+               unsigned SREN           : 1;
+               unsigned RX9            : 1;
+               unsigned SPEN           : 1;
+       };
+       struct {
+               unsigned 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 (0xFAB) RCSTAbits;
+
+extern __sfr __at (0xFAB) RCSTA1;
+typedef union {
+       struct {
+               unsigned RX9D           : 1;
+               unsigned OERR           : 1;
+               unsigned FERR           : 1;
+               unsigned ADDEN          : 1;
+               unsigned CREN           : 1;
+               unsigned SREN           : 1;
+               unsigned RX9            : 1;
+               unsigned SPEN           : 1;
+       };
+       struct {
+               unsigned 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 (0xFAB) RCSTA1bits;
+
+extern __sfr __at (0xFAC) TXSTA;
+typedef union {
+       struct {
+               unsigned TX9D           : 1;
+               unsigned TRMT           : 1;
+               unsigned BRGH           : 1;
+               unsigned SENDB          : 1;
+               unsigned SYNC           : 1;
+               unsigned TXEN           : 1;
+               unsigned TX9            : 1;
+               unsigned CSRC           : 1;
+       };
+       struct {
+               unsigned 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 (0xFAC) TXSTAbits;
+
+extern __sfr __at (0xFAC) TXSTA1;
+typedef union {
+       struct {
+               unsigned TX9D           : 1;
+               unsigned TRMT           : 1;
+               unsigned BRGH           : 1;
+               unsigned SENDB          : 1;
+               unsigned SYNC           : 1;
+               unsigned TXEN           : 1;
+               unsigned TX9            : 1;
+               unsigned CSRC           : 1;
+       };
+       struct {
+               unsigned 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 (0xFAC) TXSTA1bits;
+
+extern __sfr __at (0xFAD) TXREG;
+
+extern __sfr __at (0xFAD) TXREG1;
+
+extern __sfr __at (0xFAE) RCREG;
+
+extern __sfr __at (0xFAE) RCREG1;
+
+extern __sfr __at (0xFAF) SPBRG;
+
+extern __sfr __at (0xFAF) SPBRG1;
+
+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 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 (0xFB1) T3CONbits;
+
+extern __sfr __at (0xFB2) TMR3L;
+
+extern __sfr __at (0xFB3) TMR3H;
+
+extern __sfr __at (0xFB4) CMCON;
+typedef union {
+       struct {
+               unsigned CM0            : 1;
+               unsigned CM1            : 1;
+               unsigned CM2            : 1;
+               unsigned CIS            : 1;
+               unsigned C1INV          : 1;
+               unsigned C2INV          : 1;
+               unsigned C1OUT          : 1;
+               unsigned C2OUT          : 1;
+       };
+} __CMCONbits_t;
+extern volatile __CMCONbits_t __at (0xFB4) CMCONbits;
+
+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;
+       };
+       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 (0xFB6) ECCP1ASbits;
+
+extern __sfr __at (0xFB7) 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 (0xFB7) CCP3CONbits;
+
+extern __sfr __at (0xFB7) 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 (0xFB7) ECCP3CONbits;
+
+extern __sfr __at (0xFB8) CCPR3;
+
+extern __sfr __at (0xFB8) CCPR3L;
+
+extern __sfr __at (0xFB9) CCPR3H;
+
+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 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 (0xFBA) CCP2CONbits;
+
+extern __sfr __at (0xFBA) 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 (0xFBA) ECCP2CONbits;
+
+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;
+       };
+       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 (0xFBD) CCP1CONbits;
+
+extern __sfr __at (0xFBD) 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 (0xFBD) ECCP1CONbits;
+
+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 PCFG0          : 1;
+               unsigned PCFG1          : 1;
+               unsigned PCFG2          : 1;
+               unsigned PCFG3          : 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 DONE           : 1;
+               unsigned CHS0           : 1;
+               unsigned CHS1           : 1;
+               unsigned CHS2           : 1;
+               unsigned CHS3           : 1;
+               unsigned                : 1;
+               unsigned ADCAL          : 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 (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;
+       };
+       struct {
+               unsigned                : 1;
+               unsigned ADMSK          : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 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;
+       };
+       struct {
+               unsigned                : 1;
+               unsigned ADMSK          : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 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) 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) 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 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) TMR1L;
+
+extern __sfr __at (0xFCF) TMR1H;
+
+extern __sfr __at (0xFD0) RCON;
+typedef union {
+       struct {
+               unsigned NOT_BOR        : 1;
+               unsigned NOT_POR        : 1;
+               unsigned NOT_PD         : 1;
+               unsigned NOT_TO         : 1;
+               unsigned NOT_RI         : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned IPEN           : 1;
+       };
+       struct {
+               unsigned BOR            : 1;
+               unsigned POR            : 1;
+               unsigned PD             : 1;
+               unsigned TO             : 1;
+               unsigned RI             : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+       };
+} __RCONbits_t;
+extern volatile __RCONbits_t __at (0xFD0) RCONbits;
+
+extern __sfr __at (0xFD1) WDTCON;
+typedef union {
+       struct {
+               unsigned SWDTE          : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+       };
+       struct {
+               unsigned SWDTEN         : 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) ECON1;
+typedef union {
+       struct {
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned RXEN           : 1;
+               unsigned TXRTS          : 1;
+               unsigned CSUMEN         : 1;
+               unsigned DMAST          : 1;
+               unsigned RXRST          : 1;
+               unsigned TXRST          : 1;
+       };
+} __ECON1bits_t;
+extern volatile __ECON1bits_t __at (0xFD2) ECON1bits;
+
+extern __sfr __at (0xFD3) OSCCON;
+typedef union {
+       struct {
+               unsigned SCS0           : 1;
+               unsigned SCS1           : 1;
+               unsigned                : 1;
+               unsigned OSTS           : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned IDLEN          : 1;
+       };
+} __OSCCONbits_t;
+extern volatile __OSCCONbits_t __at (0xFD3) OSCCONbits;
+
+extern __sfr __at (0xFD5) T0CON;
+typedef union {
+       struct {
+               unsigned T0PS0          : 1;
+               unsigned T0PS1          : 1;
+               unsigned T0PS2          : 1;
+               unsigned PSA            : 1;
+               unsigned T0SE           : 1;
+               unsigned T0CS           : 1;
+               unsigned T08BIT         : 1;
+               unsigned TMR0ON         : 1;
+       };
+} __T0CONbits_t;
+extern volatile __T0CONbits_t __at (0xFD5) T0CONbits;
+
+extern __sfr __at (0xFD6) TMR0L;
+
+extern __sfr __at (0xFD7) TMR0H;
+
+extern __sfr __at (0xFD8) STATUS;
+typedef union {
+       struct {
+               unsigned C              : 1;
+               unsigned DC             : 1;
+               unsigned Z              : 1;
+               unsigned OV             : 1;
+               unsigned N              : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+       };
+} __STATUSbits_t;
+extern volatile __STATUSbits_t __at (0xFD8) STATUSbits;
+
+extern __sfr __at (0xFD9) FSR2L;
+
+extern __sfr __at (0xFDA) FSR2H;
+
+extern __sfr __at (0xFDB) PLUSW2;
+
+extern __sfr __at (0xFDC) PREINC2;
+
+extern __sfr __at (0xFDD) POSTDEC2;
+
+extern __sfr __at (0xFDE) POSTINC2;
+
+extern __sfr __at (0xFDF) INDF2;
+
+extern __sfr __at (0xFE0) BSR;
+
+extern __sfr __at (0xFE1) FSR1L;
+
+extern __sfr __at (0xFE2) FSR1H;
+
+extern __sfr __at (0xFE3) PLUSW1;
+
+extern __sfr __at (0xFE4) PREINC1;
+
+extern __sfr __at (0xFE5) POSTDEC1;
+
+extern __sfr __at (0xFE6) POSTINC1;
+
+extern __sfr __at (0xFE7) INDF1;
+
+extern __sfr __at (0xFE8) WREG;
+
+extern __sfr __at (0xFE9) FSR0L;
+
+extern __sfr __at (0xFEA) FSR0H;
+
+extern __sfr __at (0xFEB) PLUSW0;
+
+extern __sfr __at (0xFEC) PREINC0;
+
+extern __sfr __at (0xFED) POSTDEC0;
+
+extern __sfr __at (0xFEE) POSTINC0;
+
+extern __sfr __at (0xFEF) INDF0;
+
+extern __sfr __at (0xFF0) INTCON3;
+typedef union {
+       struct {
+               unsigned 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 INT3IP         : 1;
+               unsigned T0IP           : 1;
+               unsigned INTEDG3        : 1;
+               unsigned INTEDG2        : 1;
+               unsigned INTEDG1        : 1;
+               unsigned INTEDG0        : 1;
+               unsigned NOT_RBPU       : 1;
+       };
+       struct {
+               unsigned                : 1;
+               unsigned                : 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                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 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/pic18f66j65.h b/device/include/pic16/pic18f66j65.h
new file mode 100644 (file)
index 0000000..a33a12a
--- /dev/null
@@ -0,0 +1,6 @@
+/*
+ * pic18f66j65.h - PIC18F66J65 Device Library Header
+ */
+
+#include "pic18f66j60.h"
+
diff --git a/device/include/pic16/pic18f67j60.h b/device/include/pic16/pic18f67j60.h
new file mode 100644 (file)
index 0000000..fbc9a05
--- /dev/null
@@ -0,0 +1,6 @@
+/*
+ * pic18f67j60.h - PIC18F67J60 Device Library Header
+ */
+
+#include "pic18f66j60.h"
+
diff --git a/device/include/pic16/pic18f86j60.h b/device/include/pic16/pic18f86j60.h
new file mode 100644 (file)
index 0000000..e4c2923
--- /dev/null
@@ -0,0 +1,2964 @@
+/*
+ * pic18f86j60.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 __PIC18F86J60_H__
+#define __PIC18F86J60_H__ 1
+
+#define        _DEVID1                 0x3FFFFE
+#define        _DEVID2                 0x3FFFFF
+
+extern __sfr __at (0xE80) MAADR5;
+
+extern __sfr __at (0xE81) MAADR6;
+
+extern __sfr __at (0xE82) MAADR3;
+
+extern __sfr __at (0xE83) MAADR4;
+
+extern __sfr __at (0xE84) MAADR1;
+
+extern __sfr __at (0xE85) MAADR2;
+
+extern __sfr __at (0xE86) EBSTSD;
+
+extern __sfr __at (0xE87) EBSTCON;
+typedef union {
+       struct {
+               unsigned BISTST         : 1;
+               unsigned TME            : 1;
+               unsigned TMSEL0         : 1;
+               unsigned TMSEL1         : 1;
+               unsigned                : 1;
+               unsigned PSV0           : 1;
+               unsigned PSV1           : 1;
+               unsigned PSV2           : 1;
+       };
+       struct {
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned TMSEL          : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned PSV            : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+       };
+} __EBSTCONbits_t;
+extern volatile __EBSTCONbits_t __at (0xE87) EBSTCONbits;
+
+extern __sfr __at (0xE88) EBSTCS;
+
+extern __sfr __at (0xE88) EBSTCSL;
+
+extern __sfr __at (0xE89) EBSTCSH;
+
+extern __sfr __at (0xE8A) MISTAT;
+typedef union {
+       struct {
+               unsigned BUSY           : 1;
+               unsigned SCAN           : 1;
+               unsigned NVALID         : 1;
+               unsigned LINKFL         : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+       };
+} __MISTATbits_t;
+extern volatile __MISTATbits_t __at (0xE8A) MISTATbits;
+
+extern __sfr __at (0xE97) EFLOCON;
+typedef union {
+       struct {
+               unsigned FCEN0          : 1;
+               unsigned FCEN1          : 1;
+               unsigned FULDPXS        : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+       };
+} __EFLOCONbits_t;
+extern volatile __EFLOCONbits_t __at (0xE97) EFLOCONbits;
+
+extern __sfr __at (0xE98) EPAUS;
+
+extern __sfr __at (0xE98) EPAUSL;
+
+extern __sfr __at (0xE99) EPAUSH;
+
+extern __sfr __at (0xEA0) MACON1;
+typedef union {
+       struct {
+               unsigned MARXEN         : 1;
+               unsigned PASSALL        : 1;
+               unsigned RXPAUS         : 1;
+               unsigned TXPAUS         : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+       };
+} __MACON1bits_t;
+extern volatile __MACON1bits_t __at (0xEA0) MACON1bits;
+
+extern __sfr __at (0xEA1) MACON2;
+typedef union {
+       struct {
+               unsigned TFUNRST        : 1;
+               unsigned MATXRST        : 1;
+               unsigned RFUNRST        : 1;
+               unsigned MARXRST        : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned RNDRST         : 1;
+               unsigned MARST          : 1;
+       };
+} __MACON2bits_t;
+extern volatile __MACON2bits_t __at (0xEA1) MACON2bits;
+
+extern __sfr __at (0xEA2) MACON3;
+typedef union {
+       struct {
+               unsigned FULDPX         : 1;
+               unsigned FRMLNEN        : 1;
+               unsigned HFRMEN         : 1;
+               unsigned PHDRLEN        : 1;
+               unsigned TXCRCEN        : 1;
+               unsigned PADCFG0        : 1;
+               unsigned PADCFG1        : 1;
+               unsigned PADCFG2        : 1;
+       };
+       struct {
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned PADCFG         : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+       };
+} __MACON3bits_t;
+extern volatile __MACON3bits_t __at (0xEA2) MACON3bits;
+
+extern __sfr __at (0xEA3) MACON4;
+typedef union {
+       struct {
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned NOBKOFF        : 1;
+               unsigned BPEN           : 1;
+               unsigned DEFER          : 1;
+               unsigned                : 1;
+       };
+} __MACON4bits_t;
+extern volatile __MACON4bits_t __at (0xEA3) MACON4bits;
+
+extern __sfr __at (0xEA4) MABBIPG;
+
+extern __sfr __at (0xEA6) MAIPG;
+
+extern __sfr __at (0xEA6) MAIPGL;
+
+extern __sfr __at (0xEA7) MAIPGH;
+
+extern __sfr __at (0xEA8) MACLCON1;
+typedef union {
+       struct {
+               unsigned RETMAX         : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+       };
+} __MACLCON1bits_t;
+extern volatile __MACLCON1bits_t __at (0xEA8) MACLCON1bits;
+
+extern __sfr __at (0xEA9) MACLCON2;
+typedef union {
+       struct {
+               unsigned COLWIN         : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+       };
+} __MACLCON2bits_t;
+extern volatile __MACLCON2bits_t __at (0xEA9) MACLCON2bits;
+
+extern __sfr __at (0xEAA) MAMXFL;
+
+extern __sfr __at (0xEAA) MAMXFLL;
+
+extern __sfr __at (0xEAB) MAMXFLH;
+
+extern __sfr __at (0xEB1) MICON;
+typedef union {
+       struct {
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned RSTMII         : 1;
+       };
+} __MICONbits_t;
+extern volatile __MICONbits_t __at (0xEB1) MICONbits;
+
+extern __sfr __at (0xEB2) MICMD;
+typedef union {
+       struct {
+               unsigned MIIRD          : 1;
+               unsigned MIISCAN        : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+       };
+} __MICMDbits_t;
+extern volatile __MICMDbits_t __at (0xEB2) MICMDbits;
+
+extern __sfr __at (0xEB4) MIREGADR;
+
+extern __sfr __at (0xEB6) MIWR;
+
+extern __sfr __at (0xEB6) MIWRL;
+
+extern __sfr __at (0xEB7) MIWRH;
+
+extern __sfr __at (0xEB8) MIRD;
+
+extern __sfr __at (0xEB8) MIRDL;
+
+extern __sfr __at (0xEB9) MIRDH;
+
+extern __sfr __at (0xEC0) EHT0;
+
+extern __sfr __at (0xEC1) EHT1;
+
+extern __sfr __at (0xEC2) EHT2;
+
+extern __sfr __at (0xEC3) EHT3;
+
+extern __sfr __at (0xEC4) EHT4;
+
+extern __sfr __at (0xEC5) EHT5;
+
+extern __sfr __at (0xEC6) EHT6;
+
+extern __sfr __at (0xEC7) EHT7;
+
+extern __sfr __at (0xEC8) EPMM0;
+
+extern __sfr __at (0xEC9) EPMM1;
+
+extern __sfr __at (0xECA) EPMM2;
+
+extern __sfr __at (0xECB) EPMM3;
+
+extern __sfr __at (0xECC) EPMM4;
+
+extern __sfr __at (0xECD) EPMM5;
+
+extern __sfr __at (0xECE) EPMM6;
+
+extern __sfr __at (0xECF) EPMM7;
+
+extern __sfr __at (0xED0) EPMCS;
+
+extern __sfr __at (0xED0) EPMCSL;
+
+extern __sfr __at (0xED1) EPMCSH;
+
+extern __sfr __at (0xED4) EPMO;
+
+extern __sfr __at (0xED4) EPMOL;
+
+extern __sfr __at (0xED5) EPMOH;
+
+extern __sfr __at (0xED6) EWOLIE;
+typedef union {
+       struct {
+               unsigned BCWOLIE        : 1;
+               unsigned MCWOLIE        : 1;
+               unsigned HTWOLIE        : 1;
+               unsigned MPWOLIE        : 1;
+               unsigned PMWOLIE        : 1;
+               unsigned                : 1;
+               unsigned AWOLIE         : 1;
+               unsigned UCWOLIE        : 1;
+       };
+} __EWOLIEbits_t;
+extern volatile __EWOLIEbits_t __at (0xED6) EWOLIEbits;
+
+extern __sfr __at (0xED7) EWOLIR;
+typedef union {
+       struct {
+               unsigned BCWOLIF        : 1;
+               unsigned MCWOLIF        : 1;
+               unsigned HTWOLIF        : 1;
+               unsigned MPWOLIF        : 1;
+               unsigned PMWOLIF        : 1;
+               unsigned                : 1;
+               unsigned AWOLIF         : 1;
+               unsigned UCWOLIF        : 1;
+       };
+} __EWOLIRbits_t;
+extern volatile __EWOLIRbits_t __at (0xED7) EWOLIRbits;
+
+extern __sfr __at (0xED8) ERXFCON;
+typedef union {
+       struct {
+               unsigned BCEN           : 1;
+               unsigned MCEN           : 1;
+               unsigned HTEN           : 1;
+               unsigned MPEN           : 1;
+               unsigned PMEN           : 1;
+               unsigned CRCEN          : 1;
+               unsigned ANDOR          : 1;
+               unsigned UCEN           : 1;
+       };
+} __ERXFCONbits_t;
+extern volatile __ERXFCONbits_t __at (0xED8) ERXFCONbits;
+
+extern __sfr __at (0xED9) EPKTCNT;
+
+extern __sfr __at (0xEE2) EWRPT;
+
+extern __sfr __at (0xEE2) EWRPTL;
+
+extern __sfr __at (0xEE3) EWRPTH;
+
+extern __sfr __at (0xEE4) ETXST;
+
+extern __sfr __at (0xEE4) ETXSTL;
+
+extern __sfr __at (0xEE5) ETXSTH;
+
+extern __sfr __at (0xEE6) ETXND;
+
+extern __sfr __at (0xEE6) ETXNDL;
+
+extern __sfr __at (0xEE7) ETXNDH;
+
+extern __sfr __at (0xEE8) ERXST;
+
+extern __sfr __at (0xEE8) ERXSTL;
+
+extern __sfr __at (0xEE9) ERXSTH;
+
+extern __sfr __at (0xEEA) ERXND;
+
+extern __sfr __at (0xEEA) ERXNDL;
+
+extern __sfr __at (0xEEB) ERXNDH;
+
+extern __sfr __at (0xEEC) ERXRDPT;
+
+extern __sfr __at (0xEEC) ERXRDPTL;
+
+extern __sfr __at (0xEED) ERXRDPTH;
+
+extern __sfr __at (0xEEE) ERXWRPT;
+
+extern __sfr __at (0xEEE) ERXWRPTL;
+
+extern __sfr __at (0xEEF) ERXWRPTH;
+
+extern __sfr __at (0xEF0) EDMAST;
+
+extern __sfr __at (0xEF0) EDMASTL;
+
+extern __sfr __at (0xEF1) EDMASTH;
+
+extern __sfr __at (0xEF2) EDMAND;
+
+extern __sfr __at (0xEF2) EDMANDL;
+
+extern __sfr __at (0xEF3) EDMANDH;
+
+extern __sfr __at (0xEF4) EDMADST;
+
+extern __sfr __at (0xEF4) EDMADSTL;
+
+extern __sfr __at (0xEF5) EDMADSTH;
+
+extern __sfr __at (0xEF6) EDMACS;
+
+extern __sfr __at (0xEF6) EDMACSL;
+
+extern __sfr __at (0xEF7) EDMACSH;
+
+extern __sfr __at (0xEFB) EIE;
+typedef union {
+       struct {
+               unsigned RXERIE         : 1;
+               unsigned TXERIE         : 1;
+               unsigned                : 1;
+               unsigned TXIE_EIE       : 1;
+               unsigned LINKIE         : 1;
+               unsigned DMAIE          : 1;
+               unsigned PKTIE          : 1;
+               unsigned                : 1;
+       };
+} __EIEbits_t;
+extern volatile __EIEbits_t __at (0xEFB) EIEbits;
+
+extern __sfr __at (0xEFD) ESTAT;
+typedef union {
+       struct {
+               unsigned PHYRDY         : 1;
+               unsigned TXABRT         : 1;
+               unsigned RXBUSY         : 1;
+               unsigned                : 1;
+               unsigned LATECOL        : 1;
+               unsigned                : 1;
+               unsigned BUFER          : 1;
+               unsigned                : 1;
+       };
+} __ESTATbits_t;
+extern volatile __ESTATbits_t __at (0xEFD) ESTATbits;
+
+extern __sfr __at (0xEFE) ECON2;
+typedef union {
+       struct {
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned ETHEN          : 1;
+               unsigned PKTDEC         : 1;
+               unsigned AUTOINC        : 1;
+       };
+} __ECON2bits_t;
+extern volatile __ECON2bits_t __at (0xEFE) ECON2bits;
+
+extern __sfr __at (0xF60) EIR;
+typedef union {
+       struct {
+               unsigned RXERIF         : 1;
+               unsigned TXERIF         : 1;
+               unsigned                : 1;
+               unsigned TXIF_EIR       : 1;
+               unsigned LINKIF         : 1;
+               unsigned DMAIF          : 1;
+               unsigned PKTIF          : 1;
+               unsigned                : 1;
+       };
+} __EIRbits_t;
+extern volatile __EIRbits_t __at (0xF60) EIRbits;
+
+extern __sfr __at (0xF61) EDATA;
+typedef union {
+       struct {
+               unsigned EDATA0         : 1;
+               unsigned EDATA1         : 1;
+               unsigned EDATA2         : 1;
+               unsigned EDATA3         : 1;
+               unsigned EDATA4         : 1;
+               unsigned EDATA5         : 1;
+               unsigned EDATA6         : 1;
+               unsigned EDATA7         : 1;
+       };
+} __EDATAbits_t;
+extern volatile __EDATAbits_t __at (0xF61) EDATAbits;
+
+extern __sfr __at (0xF67) 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 (0xF67) ECCP2DELbits;
+
+extern __sfr __at (0xF68) 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 (0xF68) ECCP2ASbits;
+
+extern __sfr __at (0xF69) 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 (0xF69) ECCP3DELbits;
+
+extern __sfr __at (0xF6A) 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 (0xF6A) ECCP3ASbits;
+
+extern __sfr __at (0xF6B) 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 (0xF6B) RCSTA2bits;
+
+extern __sfr __at (0xF6C) 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 (0xF6C) TXSTA2bits;
+
+extern __sfr __at (0xF6D) TXREG2;
+
+extern __sfr __at (0xF6E) RCREG2;
+
+extern __sfr __at (0xF6F) SPBRG2;
+
+extern __sfr __at (0xF70) CCP5CON;
+typedef union {
+       struct {
+               unsigned CCP5M0         : 1;
+               unsigned CCP5M1         : 1;
+               unsigned CCP5M2         : 1;
+               unsigned CCP5M3         : 1;
+               unsigned CCP5Y          : 1;
+               unsigned CCP5X          : 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 CCP4Y          : 1;
+               unsigned CCP4X          : 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) PR4;
+
+extern __sfr __at (0xF78) TMR4;
+
+extern __sfr __at (0xF79) 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 (0xF79) ECCP1DELbits;
+
+extern __sfr __at (0xF7A) ERDPT;
+
+extern __sfr __at (0xF7A) ERDPTL;
+
+extern __sfr __at (0xF7B) ERDPTH;
+
+extern __sfr __at (0xF7C) BAUDCON2;
+typedef union {
+       struct {
+               unsigned ABDEN          : 1;
+               unsigned WUE            : 1;
+               unsigned                : 1;
+               unsigned BRG16          : 1;
+               unsigned SCKP           : 1;
+               unsigned RXDTP          : 1;
+               unsigned RCMT           : 1;
+               unsigned ABDOVF         : 1;
+       };
+       struct {
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned TXCKP          : 1;
+               unsigned                : 1;
+               unsigned RCIDL          : 1;
+               unsigned                : 1;
+       };
+} __BAUDCON2bits_t;
+extern volatile __BAUDCON2bits_t __at (0xF7C) BAUDCON2bits;
+
+extern __sfr __at (0xF7C) BAUDCTL2;
+typedef union {
+       struct {
+               unsigned ABDEN          : 1;
+               unsigned WUE            : 1;
+               unsigned                : 1;
+               unsigned BRG16          : 1;
+               unsigned SCKP           : 1;
+               unsigned RXDTP          : 1;
+               unsigned RCMT           : 1;
+               unsigned ABDOVF         : 1;
+       };
+       struct {
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned TXCKP          : 1;
+               unsigned                : 1;
+               unsigned RCIDL          : 1;
+               unsigned                : 1;
+       };
+} __BAUDCTL2bits_t;
+extern volatile __BAUDCTL2bits_t __at (0xF7C) BAUDCTL2bits;
+
+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 RXDTP          : 1;
+               unsigned RCMT           : 1;
+               unsigned ABDOVF         : 1;
+       };
+       struct {
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned TXCKP          : 1;
+               unsigned                : 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 RXDTP          : 1;
+               unsigned RCMT           : 1;
+               unsigned ABDOVF         : 1;
+       };
+       struct {
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned TXCKP          : 1;
+               unsigned                : 1;
+               unsigned RCIDL          : 1;
+               unsigned                : 1;
+       };
+} __BAUDCON1bits_t;
+extern volatile __BAUDCON1bits_t __at (0xF7E) BAUDCON1bits;
+
+extern __sfr __at (0xF7E) BAUDCTL;
+typedef union {
+       struct {
+               unsigned ABDEN          : 1;
+               unsigned WUE            : 1;
+               unsigned                : 1;
+               unsigned BRG16          : 1;
+               unsigned SCKP           : 1;
+               unsigned RXDTP          : 1;
+               unsigned RCMT           : 1;
+               unsigned ABDOVF         : 1;
+       };
+       struct {
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned TXCKP          : 1;
+               unsigned                : 1;
+               unsigned RCIDL          : 1;
+               unsigned                : 1;
+       };
+} __BAUDCTLbits_t;
+extern volatile __BAUDCTLbits_t __at (0xF7E) BAUDCTLbits;
+
+extern __sfr __at (0xF7E) BAUDCTL1;
+typedef union {
+       struct {
+               unsigned ABDEN          : 1;
+               unsigned WUE            : 1;
+               unsigned                : 1;
+               unsigned BRG16          : 1;
+               unsigned SCKP           : 1;
+               unsigned RXDTP          : 1;
+               unsigned RCMT           : 1;
+               unsigned ABDOVF         : 1;
+       };
+       struct {
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned TXCKP          : 1;
+               unsigned                : 1;
+               unsigned RCIDL          : 1;
+               unsigned                : 1;
+       };
+} __BAUDCTL1bits_t;
+extern volatile __BAUDCTL1bits_t __at (0xF7E) BAUDCTL1bits;
+
+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                : 1;
+               unsigned RJPU           : 1;
+       };
+       struct {
+               unsigned AN0            : 1;
+               unsigned AN1            : 1;
+               unsigned AN2            : 1;
+               unsigned AN3            : 1;
+               unsigned T0CKI          : 1;
+               unsigned AN4            : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+       };
+       struct {
+               unsigned LEDA           : 1;
+               unsigned LEDB           : 1;
+               unsigned VREFM          : 1;
+               unsigned VREFP          : 1;
+               unsigned                : 1;
+               unsigned                : 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                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 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           : 1;
+               unsigned                : 1;
+               unsigned SCL            : 1;
+               unsigned SDA            : 1;
+               unsigned SDO1           : 1;
+               unsigned CK             : 1;
+               unsigned DT             : 1;
+       };
+       struct {
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned SCK1           : 1;
+               unsigned SDI1           : 1;
+               unsigned                : 1;
+               unsigned TX1            : 1;
+               unsigned RX1            : 1;
+       };
+       struct {
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned SCL1           : 1;
+               unsigned SDA1           : 1;
+               unsigned                : 1;
+               unsigned CK1            : 1;
+               unsigned DT1            : 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                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 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;
+       };
+} __PORTEbits_t;
+extern volatile __PORTEbits_t __at (0xF84) PORTEbits;
+
+extern __sfr __at (0xF85) PORTF;
+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;
+       };
+       struct {
+               unsigned                : 1;
+               unsigned AN6            : 1;
+               unsigned AN7            : 1;
+               unsigned AN8            : 1;
+               unsigned AN9            : 1;
+               unsigned AN10           : 1;
+               unsigned AN11           : 1;
+               unsigned SS             : 1;
+       };
+       struct {
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned CVREF          : 1;
+               unsigned                : 1;
+               unsigned NOT_SS         : 1;
+       };
+       struct {
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned SS1            : 1;
+       };
+       struct {
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned NOT_SS1        : 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                : 1;
+               unsigned                : 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                : 1;
+               unsigned CK2            : 1;
+               unsigned DT2            : 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                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned AN12           : 1;
+               unsigned AN13           : 1;
+               unsigned AN14           : 1;
+               unsigned AN15           : 1;
+       };
+} __PORTHbits_t;
+extern volatile __PORTHbits_t __at (0xF87) PORTHbits;
+
+extern __sfr __at (0xF88) PORTJ;
+typedef union {
+       struct {
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned RJ4            : 1;
+               unsigned RJ5            : 1;
+               unsigned                : 1;
+               unsigned                : 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 REPU           : 1;
+               unsigned RDPU           : 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                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 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 LATF1          : 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                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned LATJ4          : 1;
+               unsigned LATJ5          : 1;
+               unsigned                : 1;
+               unsigned                : 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                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 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                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 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 TRISF1         : 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                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned RJ4            : 1;
+               unsigned RJ5            : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+       };
+} __DDRJbits_t;
+extern volatile __DDRJbits_t __at (0xF9A) DDRJbits;
+
+extern __sfr __at (0xF9A) TRISJ;
+typedef union {
+       struct {
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned TRISJ4         : 1;
+               unsigned TRISJ5         : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+       };
+} __TRISJbits_t;
+extern volatile __TRISJbits_t __at (0xF9A) TRISJbits;
+
+extern __sfr __at (0xF9B) OSCTUNE;
+typedef union {
+       struct {
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned PPRE           : 1;
+               unsigned PPST0          : 1;
+               unsigned PLLEN          : 1;
+               unsigned PPST1          : 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_PIE1      : 1;
+               unsigned RCIE           : 1;
+               unsigned ADIE           : 1;
+               unsigned                : 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_PIR1      : 1;
+               unsigned RCIF           : 1;
+               unsigned ADIF           : 1;
+               unsigned                : 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                : 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                : 1;
+               unsigned BCLIE          : 1;
+               unsigned ETHWIE         : 1;
+               unsigned ETHIE          : 1;
+               unsigned CMIE           : 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                : 1;
+               unsigned BCLIF          : 1;
+               unsigned ETHWIF         : 1;
+               unsigned ETHIF          : 1;
+               unsigned CMIF           : 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                : 1;
+               unsigned BCLIP          : 1;
+               unsigned ETHWIP         : 1;
+               unsigned ETHIP          : 1;
+               unsigned CMIP           : 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                : 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                : 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                : 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                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+       };
+} __EECON1bits_t;
+extern volatile __EECON1bits_t __at (0xFA6) EECON1bits;
+
+extern __sfr __at (0xFA7) EECON2;
+
+extern __sfr __at (0xFAB) RCSTA;
+typedef union {
+       struct {
+               unsigned RX9D           : 1;
+               unsigned OERR           : 1;
+               unsigned FERR           : 1;
+               unsigned ADDEN          : 1;
+               unsigned CREN           : 1;
+               unsigned SREN           : 1;
+               unsigned RX9            : 1;
+               unsigned SPEN           : 1;
+       };
+       struct {
+               unsigned 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 (0xFAB) RCSTAbits;
+
+extern __sfr __at (0xFAB) RCSTA1;
+typedef union {
+       struct {
+               unsigned RX9D           : 1;
+               unsigned OERR           : 1;
+               unsigned FERR           : 1;
+               unsigned ADDEN          : 1;
+               unsigned CREN           : 1;
+               unsigned SREN           : 1;
+               unsigned RX9            : 1;
+               unsigned SPEN           : 1;
+       };
+       struct {
+               unsigned 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 (0xFAB) RCSTA1bits;
+
+extern __sfr __at (0xFAC) TXSTA;
+typedef union {
+       struct {
+               unsigned TX9D           : 1;
+               unsigned TRMT           : 1;
+               unsigned BRGH           : 1;
+               unsigned SENDB          : 1;
+               unsigned SYNC           : 1;
+               unsigned TXEN           : 1;
+               unsigned TX9            : 1;
+               unsigned CSRC           : 1;
+       };
+       struct {
+               unsigned 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 (0xFAC) TXSTAbits;
+
+extern __sfr __at (0xFAC) TXSTA1;
+typedef union {
+       struct {
+               unsigned TX9D           : 1;
+               unsigned TRMT           : 1;
+               unsigned BRGH           : 1;
+               unsigned SENDB          : 1;
+               unsigned SYNC           : 1;
+               unsigned TXEN           : 1;
+               unsigned TX9            : 1;
+               unsigned CSRC           : 1;
+       };
+       struct {
+               unsigned 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 (0xFAC) TXSTA1bits;
+
+extern __sfr __at (0xFAD) TXREG;
+
+extern __sfr __at (0xFAD) TXREG1;
+
+extern __sfr __at (0xFAE) RCREG;
+
+extern __sfr __at (0xFAE) RCREG1;
+
+extern __sfr __at (0xFAF) SPBRG;
+
+extern __sfr __at (0xFAF) SPBRG1;
+
+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 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 (0xFB1) T3CONbits;
+
+extern __sfr __at (0xFB2) TMR3L;
+
+extern __sfr __at (0xFB3) TMR3H;
+
+extern __sfr __at (0xFB4) CMCON;
+typedef union {
+       struct {
+               unsigned CM0            : 1;
+               unsigned CM1            : 1;
+               unsigned CM2            : 1;
+               unsigned CIS            : 1;
+               unsigned C1INV          : 1;
+               unsigned C2INV          : 1;
+               unsigned C1OUT          : 1;
+               unsigned C2OUT          : 1;
+       };
+} __CMCONbits_t;
+extern volatile __CMCONbits_t __at (0xFB4) CMCONbits;
+
+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;
+       };
+       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 (0xFB6) ECCP1ASbits;
+
+extern __sfr __at (0xFB7) 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 (0xFB7) CCP3CONbits;
+
+extern __sfr __at (0xFB7) 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 (0xFB7) ECCP3CONbits;
+
+extern __sfr __at (0xFB8) CCPR3;
+
+extern __sfr __at (0xFB8) CCPR3L;
+
+extern __sfr __at (0xFB9) CCPR3H;
+
+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 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 (0xFBA) CCP2CONbits;
+
+extern __sfr __at (0xFBA) 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 (0xFBA) ECCP2CONbits;
+
+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;
+       };
+       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 (0xFBD) CCP1CONbits;
+
+extern __sfr __at (0xFBD) 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 (0xFBD) ECCP1CONbits;
+
+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 PCFG0          : 1;
+               unsigned PCFG1          : 1;
+               unsigned PCFG2          : 1;
+               unsigned PCFG3          : 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 DONE           : 1;
+               unsigned CHS0           : 1;
+               unsigned CHS1           : 1;
+               unsigned CHS2           : 1;
+               unsigned CHS3           : 1;
+               unsigned                : 1;
+               unsigned ADCAL          : 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 (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;
+       };
+       struct {
+               unsigned                : 1;
+               unsigned ADMSK          : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 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;
+       };
+       struct {
+               unsigned                : 1;
+               unsigned ADMSK          : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 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) 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) 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 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) TMR1L;
+
+extern __sfr __at (0xFCF) TMR1H;
+
+extern __sfr __at (0xFD0) RCON;
+typedef union {
+       struct {
+               unsigned NOT_BOR        : 1;
+               unsigned NOT_POR        : 1;
+               unsigned NOT_PD         : 1;
+               unsigned NOT_TO         : 1;
+               unsigned NOT_RI         : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned IPEN           : 1;
+       };
+       struct {
+               unsigned BOR            : 1;
+               unsigned POR            : 1;
+               unsigned PD             : 1;
+               unsigned TO             : 1;
+               unsigned RI             : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+       };
+} __RCONbits_t;
+extern volatile __RCONbits_t __at (0xFD0) RCONbits;
+
+extern __sfr __at (0xFD1) WDTCON;
+typedef union {
+       struct {
+               unsigned SWDTE          : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+       };
+       struct {
+               unsigned SWDTEN         : 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) ECON1;
+typedef union {
+       struct {
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned RXEN           : 1;
+               unsigned TXRTS          : 1;
+               unsigned CSUMEN         : 1;
+               unsigned DMAST          : 1;
+               unsigned RXRST          : 1;
+               unsigned TXRST          : 1;
+       };
+} __ECON1bits_t;
+extern volatile __ECON1bits_t __at (0xFD2) ECON1bits;
+
+extern __sfr __at (0xFD3) OSCCON;
+typedef union {
+       struct {
+               unsigned SCS0           : 1;
+               unsigned SCS1           : 1;
+               unsigned                : 1;
+               unsigned OSTS           : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned IDLEN          : 1;
+       };
+} __OSCCONbits_t;
+extern volatile __OSCCONbits_t __at (0xFD3) OSCCONbits;
+
+extern __sfr __at (0xFD5) T0CON;
+typedef union {
+       struct {
+               unsigned T0PS0          : 1;
+               unsigned T0PS1          : 1;
+               unsigned T0PS2          : 1;
+               unsigned PSA            : 1;
+               unsigned T0SE           : 1;
+               unsigned T0CS           : 1;
+               unsigned T08BIT         : 1;
+               unsigned TMR0ON         : 1;
+       };
+} __T0CONbits_t;
+extern volatile __T0CONbits_t __at (0xFD5) T0CONbits;
+
+extern __sfr __at (0xFD6) TMR0L;
+
+extern __sfr __at (0xFD7) TMR0H;
+
+extern __sfr __at (0xFD8) STATUS;
+typedef union {
+       struct {
+               unsigned C              : 1;
+               unsigned DC             : 1;
+               unsigned Z              : 1;
+               unsigned OV             : 1;
+               unsigned N              : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+       };
+} __STATUSbits_t;
+extern volatile __STATUSbits_t __at (0xFD8) STATUSbits;
+
+extern __sfr __at (0xFD9) FSR2L;
+
+extern __sfr __at (0xFDA) FSR2H;
+
+extern __sfr __at (0xFDB) PLUSW2;
+
+extern __sfr __at (0xFDC) PREINC2;
+
+extern __sfr __at (0xFDD) POSTDEC2;
+
+extern __sfr __at (0xFDE) POSTINC2;
+
+extern __sfr __at (0xFDF) INDF2;
+
+extern __sfr __at (0xFE0) BSR;
+
+extern __sfr __at (0xFE1) FSR1L;
+
+extern __sfr __at (0xFE2) FSR1H;
+
+extern __sfr __at (0xFE3) PLUSW1;
+
+extern __sfr __at (0xFE4) PREINC1;
+
+extern __sfr __at (0xFE5) POSTDEC1;
+
+extern __sfr __at (0xFE6) POSTINC1;
+
+extern __sfr __at (0xFE7) INDF1;
+
+extern __sfr __at (0xFE8) WREG;
+
+extern __sfr __at (0xFE9) FSR0L;
+
+extern __sfr __at (0xFEA) FSR0H;
+
+extern __sfr __at (0xFEB) PLUSW0;
+
+extern __sfr __at (0xFEC) PREINC0;
+
+extern __sfr __at (0xFED) POSTDEC0;
+
+extern __sfr __at (0xFEE) POSTINC0;
+
+extern __sfr __at (0xFEF) INDF0;
+
+extern __sfr __at (0xFF0) INTCON3;
+typedef union {
+       struct {
+               unsigned 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 INT3IP         : 1;
+               unsigned T0IP           : 1;
+               unsigned INTEDG3        : 1;
+               unsigned INTEDG2        : 1;
+               unsigned INTEDG1        : 1;
+               unsigned INTEDG0        : 1;
+               unsigned NOT_RBPU       : 1;
+       };
+       struct {
+               unsigned                : 1;
+               unsigned                : 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                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 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/pic18f86j65.h b/device/include/pic16/pic18f86j65.h
new file mode 100644 (file)
index 0000000..f6e49fa
--- /dev/null
@@ -0,0 +1,6 @@
+/*
+ * pic18f86j65.h - PIC18F86J65 Device Library Header
+ */
+
+#include "pic18f86j60.h"
+
diff --git a/device/include/pic16/pic18f87j60.h b/device/include/pic16/pic18f87j60.h
new file mode 100644 (file)
index 0000000..78184eb
--- /dev/null
@@ -0,0 +1,6 @@
+/*
+ * pic18f87j60.h - PIC18F87J60 Device Library Header
+ */
+
+#include "pic18f86j60.h"
+
diff --git a/device/include/pic16/pic18f96j60.h b/device/include/pic16/pic18f96j60.h
new file mode 100644 (file)
index 0000000..f942dda
--- /dev/null
@@ -0,0 +1,3203 @@
+/*
+ * pic18f96j60.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 __PIC18F96J60_H__
+#define __PIC18F96J60_H__ 1
+
+#define        _DEVID1                 0x3FFFFE
+#define        _DEVID2                 0x3FFFFF
+
+extern __sfr __at (0xE80) MAADR5;
+
+extern __sfr __at (0xE81) MAADR6;
+
+extern __sfr __at (0xE82) MAADR3;
+
+extern __sfr __at (0xE83) MAADR4;
+
+extern __sfr __at (0xE84) MAADR1;
+
+extern __sfr __at (0xE85) MAADR2;
+
+extern __sfr __at (0xE86) EBSTSD;
+
+extern __sfr __at (0xE87) EBSTCON;
+typedef union {
+       struct {
+               unsigned BISTST         : 1;
+               unsigned TME            : 1;
+               unsigned TMSEL0         : 1;
+               unsigned TMSEL1         : 1;
+               unsigned                : 1;
+               unsigned PSV0           : 1;
+               unsigned PSV1           : 1;
+               unsigned PSV2           : 1;
+       };
+       struct {
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned TMSEL          : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned PSV            : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+       };
+} __EBSTCONbits_t;
+extern volatile __EBSTCONbits_t __at (0xE87) EBSTCONbits;
+
+extern __sfr __at (0xE88) EBSTCS;
+
+extern __sfr __at (0xE88) EBSTCSL;
+
+extern __sfr __at (0xE89) EBSTCSH;
+
+extern __sfr __at (0xE8A) MISTAT;
+typedef union {
+       struct {
+               unsigned BUSY           : 1;
+               unsigned SCAN           : 1;
+               unsigned NVALID         : 1;
+               unsigned LINKFL         : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+       };
+} __MISTATbits_t;
+extern volatile __MISTATbits_t __at (0xE8A) MISTATbits;
+
+extern __sfr __at (0xE97) EFLOCON;
+typedef union {
+       struct {
+               unsigned FCEN0          : 1;
+               unsigned FCEN1          : 1;
+               unsigned FULDPXS        : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+       };
+} __EFLOCONbits_t;
+extern volatile __EFLOCONbits_t __at (0xE97) EFLOCONbits;
+
+extern __sfr __at (0xE98) EPAUS;
+
+extern __sfr __at (0xE98) EPAUSL;
+
+extern __sfr __at (0xE99) EPAUSH;
+
+extern __sfr __at (0xEA0) MACON1;
+typedef union {
+       struct {
+               unsigned MARXEN         : 1;
+               unsigned PASSALL        : 1;
+               unsigned RXPAUS         : 1;
+               unsigned TXPAUS         : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+       };
+} __MACON1bits_t;
+extern volatile __MACON1bits_t __at (0xEA0) MACON1bits;
+
+extern __sfr __at (0xEA1) MACON2;
+typedef union {
+       struct {
+               unsigned TFUNRST        : 1;
+               unsigned MATXRST        : 1;
+               unsigned RFUNRST        : 1;
+               unsigned MARXRST        : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned RNDRST         : 1;
+               unsigned MARST          : 1;
+       };
+} __MACON2bits_t;
+extern volatile __MACON2bits_t __at (0xEA1) MACON2bits;
+
+extern __sfr __at (0xEA2) MACON3;
+typedef union {
+       struct {
+               unsigned FULDPX         : 1;
+               unsigned FRMLNEN        : 1;
+               unsigned HFRMEN         : 1;
+               unsigned PHDRLEN        : 1;
+               unsigned TXCRCEN        : 1;
+               unsigned PADCFG0        : 1;
+               unsigned PADCFG1        : 1;
+               unsigned PADCFG2        : 1;
+       };
+       struct {
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned PADCFG         : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+       };
+} __MACON3bits_t;
+extern volatile __MACON3bits_t __at (0xEA2) MACON3bits;
+
+extern __sfr __at (0xEA3) MACON4;
+typedef union {
+       struct {
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned NOBKOFF        : 1;
+               unsigned BPEN           : 1;
+               unsigned DEFER          : 1;
+               unsigned                : 1;
+       };
+} __MACON4bits_t;
+extern volatile __MACON4bits_t __at (0xEA3) MACON4bits;
+
+extern __sfr __at (0xEA4) MABBIPG;
+
+extern __sfr __at (0xEA6) MAIPG;
+
+extern __sfr __at (0xEA6) MAIPGL;
+
+extern __sfr __at (0xEA7) MAIPGH;
+
+extern __sfr __at (0xEA8) MACLCON1;
+typedef union {
+       struct {
+               unsigned RETMAX         : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+       };
+} __MACLCON1bits_t;
+extern volatile __MACLCON1bits_t __at (0xEA8) MACLCON1bits;
+
+extern __sfr __at (0xEA9) MACLCON2;
+typedef union {
+       struct {
+               unsigned COLWIN         : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+       };
+} __MACLCON2bits_t;
+extern volatile __MACLCON2bits_t __at (0xEA9) MACLCON2bits;
+
+extern __sfr __at (0xEAA) MAMXFL;
+
+extern __sfr __at (0xEAA) MAMXFLL;
+
+extern __sfr __at (0xEAB) MAMXFLH;
+
+extern __sfr __at (0xEB1) MICON;
+typedef union {
+       struct {
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned RSTMII         : 1;
+       };
+} __MICONbits_t;
+extern volatile __MICONbits_t __at (0xEB1) MICONbits;
+
+extern __sfr __at (0xEB2) MICMD;
+typedef union {
+       struct {
+               unsigned MIIRD          : 1;
+               unsigned MIISCAN        : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+       };
+} __MICMDbits_t;
+extern volatile __MICMDbits_t __at (0xEB2) MICMDbits;
+
+extern __sfr __at (0xEB4) MIREGADR;
+
+extern __sfr __at (0xEB6) MIWR;
+
+extern __sfr __at (0xEB6) MIWRL;
+
+extern __sfr __at (0xEB7) MIWRH;
+
+extern __sfr __at (0xEB8) MIRD;
+
+extern __sfr __at (0xEB8) MIRDL;
+
+extern __sfr __at (0xEB9) MIRDH;
+
+extern __sfr __at (0xEC0) EHT0;
+
+extern __sfr __at (0xEC1) EHT1;
+
+extern __sfr __at (0xEC2) EHT2;
+
+extern __sfr __at (0xEC3) EHT3;
+
+extern __sfr __at (0xEC4) EHT4;
+
+extern __sfr __at (0xEC5) EHT5;
+
+extern __sfr __at (0xEC6) EHT6;
+
+extern __sfr __at (0xEC7) EHT7;
+
+extern __sfr __at (0xEC8) EPMM0;
+
+extern __sfr __at (0xEC9) EPMM1;
+
+extern __sfr __at (0xECA) EPMM2;
+
+extern __sfr __at (0xECB) EPMM3;
+
+extern __sfr __at (0xECC) EPMM4;
+
+extern __sfr __at (0xECD) EPMM5;
+
+extern __sfr __at (0xECE) EPMM6;
+
+extern __sfr __at (0xECF) EPMM7;
+
+extern __sfr __at (0xED0) EPMCS;
+
+extern __sfr __at (0xED0) EPMCSL;
+
+extern __sfr __at (0xED1) EPMCSH;
+
+extern __sfr __at (0xED4) EPMO;
+
+extern __sfr __at (0xED4) EPMOL;
+
+extern __sfr __at (0xED5) EPMOH;
+
+extern __sfr __at (0xED6) EWOLIE;
+typedef union {
+       struct {
+               unsigned BCWOLIE        : 1;
+               unsigned MCWOLIE        : 1;
+               unsigned HTWOLIE        : 1;
+               unsigned MPWOLIE        : 1;
+               unsigned PMWOLIE        : 1;
+               unsigned                : 1;
+               unsigned AWOLIE         : 1;
+               unsigned UCWOLIE        : 1;
+       };
+} __EWOLIEbits_t;
+extern volatile __EWOLIEbits_t __at (0xED6) EWOLIEbits;
+
+extern __sfr __at (0xED7) EWOLIR;
+typedef union {
+       struct {
+               unsigned BCWOLIF        : 1;
+               unsigned MCWOLIF        : 1;
+               unsigned HTWOLIF        : 1;
+               unsigned MPWOLIF        : 1;
+               unsigned PMWOLIF        : 1;
+               unsigned                : 1;
+               unsigned AWOLIF         : 1;
+               unsigned UCWOLIF        : 1;
+       };
+} __EWOLIRbits_t;
+extern volatile __EWOLIRbits_t __at (0xED7) EWOLIRbits;
+
+extern __sfr __at (0xED8) ERXFCON;
+typedef union {
+       struct {
+               unsigned BCEN           : 1;
+               unsigned MCEN           : 1;
+               unsigned HTEN           : 1;
+               unsigned MPEN           : 1;
+               unsigned PMEN           : 1;
+               unsigned CRCEN          : 1;
+               unsigned ANDOR          : 1;
+               unsigned UCEN           : 1;
+       };
+} __ERXFCONbits_t;
+extern volatile __ERXFCONbits_t __at (0xED8) ERXFCONbits;
+
+extern __sfr __at (0xED9) EPKTCNT;
+
+extern __sfr __at (0xEE2) EWRPT;
+
+extern __sfr __at (0xEE2) EWRPTL;
+
+extern __sfr __at (0xEE3) EWRPTH;
+
+extern __sfr __at (0xEE4) ETXST;
+
+extern __sfr __at (0xEE4) ETXSTL;
+
+extern __sfr __at (0xEE5) ETXSTH;
+
+extern __sfr __at (0xEE6) ETXND;
+
+extern __sfr __at (0xEE6) ETXNDL;
+
+extern __sfr __at (0xEE7) ETXNDH;
+
+extern __sfr __at (0xEE8) ERXST;
+
+extern __sfr __at (0xEE8) ERXSTL;
+
+extern __sfr __at (0xEE9) ERXSTH;
+
+extern __sfr __at (0xEEA) ERXND;
+
+extern __sfr __at (0xEEA) ERXNDL;
+
+extern __sfr __at (0xEEB) ERXNDH;
+
+extern __sfr __at (0xEEC) ERXRDPT;
+
+extern __sfr __at (0xEEC) ERXRDPTL;
+
+extern __sfr __at (0xEED) ERXRDPTH;
+
+extern __sfr __at (0xEEE) ERXWRPT;
+
+extern __sfr __at (0xEEE) ERXWRPTL;
+
+extern __sfr __at (0xEEF) ERXWRPTH;
+
+extern __sfr __at (0xEF0) EDMAST;
+
+extern __sfr __at (0xEF0) EDMASTL;
+
+extern __sfr __at (0xEF1) EDMASTH;
+
+extern __sfr __at (0xEF2) EDMAND;
+
+extern __sfr __at (0xEF2) EDMANDL;
+
+extern __sfr __at (0xEF3) EDMANDH;
+
+extern __sfr __at (0xEF4) EDMADST;
+
+extern __sfr __at (0xEF4) EDMADSTL;
+
+extern __sfr __at (0xEF5) EDMADSTH;
+
+extern __sfr __at (0xEF6) EDMACS;
+
+extern __sfr __at (0xEF6) EDMACSL;
+
+extern __sfr __at (0xEF7) EDMACSH;
+
+extern __sfr __at (0xEFB) EIE;
+typedef union {
+       struct {
+               unsigned RXERIE         : 1;
+               unsigned TXERIE         : 1;
+               unsigned                : 1;
+               unsigned TXIE_EIE       : 1;
+               unsigned LINKIE         : 1;
+               unsigned DMAIE          : 1;
+               unsigned PKTIE          : 1;
+               unsigned                : 1;
+       };
+} __EIEbits_t;
+extern volatile __EIEbits_t __at (0xEFB) EIEbits;
+
+extern __sfr __at (0xEFD) ESTAT;
+typedef union {
+       struct {
+               unsigned PHYRDY         : 1;
+               unsigned TXABRT         : 1;
+               unsigned RXBUSY         : 1;
+               unsigned                : 1;
+               unsigned LATECOL        : 1;
+               unsigned                : 1;
+               unsigned BUFER          : 1;
+               unsigned                : 1;
+       };
+} __ESTATbits_t;
+extern volatile __ESTATbits_t __at (0xEFD) ESTATbits;
+
+extern __sfr __at (0xEFE) ECON2;
+typedef union {
+       struct {
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned ETHEN          : 1;
+               unsigned PKTDEC         : 1;
+               unsigned AUTOINC        : 1;
+       };
+} __ECON2bits_t;
+extern volatile __ECON2bits_t __at (0xEFE) ECON2bits;
+
+extern __sfr __at (0xF60) EIR;
+typedef union {
+       struct {
+               unsigned RXERIF         : 1;
+               unsigned TXERIF         : 1;
+               unsigned                : 1;
+               unsigned TXIF_EIR       : 1;
+               unsigned LINKIF         : 1;
+               unsigned DMAIF          : 1;
+               unsigned PKTIF          : 1;
+               unsigned                : 1;
+       };
+} __EIRbits_t;
+extern volatile __EIRbits_t __at (0xF60) EIRbits;
+
+extern __sfr __at (0xF61) EDATA;
+typedef union {
+       struct {
+               unsigned EDATA0         : 1;
+               unsigned EDATA1         : 1;
+               unsigned EDATA2         : 1;
+               unsigned EDATA3         : 1;
+               unsigned EDATA4         : 1;
+               unsigned EDATA5         : 1;
+               unsigned EDATA6         : 1;
+               unsigned EDATA7         : 1;
+       };
+} __EDATAbits_t;
+extern volatile __EDATAbits_t __at (0xF61) EDATAbits;
+
+extern __sfr __at (0xF62) 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;
+       };
+       struct {
+               unsigned                : 1;
+               unsigned ADMSK          : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+       };
+} __SSP2CON2bits_t;
+extern volatile __SSP2CON2bits_t __at (0xF62) SSP2CON2bits;
+
+extern __sfr __at (0xF63) 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 (0xF63) SSP2CON1bits;
+
+extern __sfr __at (0xF64) 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 (0xF64) SSP2STATbits;
+
+extern __sfr __at (0xF65) SSP2ADD;
+
+extern __sfr __at (0xF66) SSP2BUF;
+
+extern __sfr __at (0xF67) 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 (0xF67) ECCP2DELbits;
+
+extern __sfr __at (0xF68) 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 (0xF68) ECCP2ASbits;
+
+extern __sfr __at (0xF69) 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 (0xF69) ECCP3DELbits;
+
+extern __sfr __at (0xF6A) 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 (0xF6A) ECCP3ASbits;
+
+extern __sfr __at (0xF6B) 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 (0xF6B) RCSTA2bits;
+
+extern __sfr __at (0xF6C) 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 (0xF6C) TXSTA2bits;
+
+extern __sfr __at (0xF6D) TXREG2;
+
+extern __sfr __at (0xF6E) RCREG2;
+
+extern __sfr __at (0xF6F) SPBRG2;
+
+extern __sfr __at (0xF70) CCP5CON;
+typedef union {
+       struct {
+               unsigned CCP5M0         : 1;
+               unsigned CCP5M1         : 1;
+               unsigned CCP5M2         : 1;
+               unsigned CCP5M3         : 1;
+               unsigned CCP5Y          : 1;
+               unsigned CCP5X          : 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 CCP4Y          : 1;
+               unsigned CCP4X          : 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) PR4;
+
+extern __sfr __at (0xF78) TMR4;
+
+extern __sfr __at (0xF79) 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 (0xF79) ECCP1DELbits;
+
+extern __sfr __at (0xF7A) ERDPT;
+
+extern __sfr __at (0xF7A) ERDPTL;
+
+extern __sfr __at (0xF7B) ERDPTH;
+
+extern __sfr __at (0xF7C) BAUDCON2;
+typedef union {
+       struct {
+               unsigned ABDEN          : 1;
+               unsigned WUE            : 1;
+               unsigned                : 1;
+               unsigned BRG16          : 1;
+               unsigned SCKP           : 1;
+               unsigned RXDTP          : 1;
+               unsigned RCMT           : 1;
+               unsigned ABDOVF         : 1;
+       };
+       struct {
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned TXCKP          : 1;
+               unsigned                : 1;
+               unsigned RCIDL          : 1;
+               unsigned                : 1;
+       };
+} __BAUDCON2bits_t;
+extern volatile __BAUDCON2bits_t __at (0xF7C) BAUDCON2bits;
+
+extern __sfr __at (0xF7C) BAUDCTL2;
+typedef union {
+       struct {
+               unsigned ABDEN          : 1;
+               unsigned WUE            : 1;
+               unsigned                : 1;
+               unsigned BRG16          : 1;
+               unsigned SCKP           : 1;
+               unsigned RXDTP          : 1;
+               unsigned RCMT           : 1;
+               unsigned ABDOVF         : 1;
+       };
+       struct {
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned TXCKP          : 1;
+               unsigned                : 1;
+               unsigned RCIDL          : 1;
+               unsigned                : 1;
+       };
+} __BAUDCTL2bits_t;
+extern volatile __BAUDCTL2bits_t __at (0xF7C) BAUDCTL2bits;
+
+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 RXDTP          : 1;
+               unsigned RCMT           : 1;
+               unsigned ABDOVF         : 1;
+       };
+       struct {
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned TXCKP          : 1;
+               unsigned                : 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 RXDTP          : 1;
+               unsigned RCMT           : 1;
+               unsigned ABDOVF         : 1;
+       };
+       struct {
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned TXCKP          : 1;
+               unsigned                : 1;
+               unsigned RCIDL          : 1;
+               unsigned                : 1;
+       };
+} __BAUDCON1bits_t;
+extern volatile __BAUDCON1bits_t __at (0xF7E) BAUDCON1bits;
+
+extern __sfr __at (0xF7E) BAUDCTL;
+typedef union {
+       struct {
+               unsigned ABDEN          : 1;
+               unsigned WUE            : 1;
+               unsigned                : 1;
+               unsigned BRG16          : 1;
+               unsigned SCKP           : 1;
+               unsigned RXDTP          : 1;
+               unsigned RCMT           : 1;
+               unsigned ABDOVF         : 1;
+       };
+       struct {
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned TXCKP          : 1;
+               unsigned                : 1;
+               unsigned RCIDL          : 1;
+               unsigned                : 1;
+       };
+} __BAUDCTLbits_t;
+extern volatile __BAUDCTLbits_t __at (0xF7E) BAUDCTLbits;
+
+extern __sfr __at (0xF7E) BAUDCTL1;
+typedef union {
+       struct {
+               unsigned ABDEN          : 1;
+               unsigned WUE            : 1;
+               unsigned                : 1;
+               unsigned BRG16          : 1;
+               unsigned SCKP           : 1;
+               unsigned RXDTP          : 1;
+               unsigned RCMT           : 1;
+               unsigned ABDOVF         : 1;
+       };
+       struct {
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned TXCKP          : 1;
+               unsigned                : 1;
+               unsigned RCIDL          : 1;
+               unsigned                : 1;
+       };
+} __BAUDCTL1bits_t;
+extern volatile __BAUDCTL1bits_t __at (0xF7E) BAUDCTL1bits;
+
+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                : 1;
+               unsigned RJPU           : 1;
+       };
+       struct {
+               unsigned AN0            : 1;
+               unsigned AN1            : 1;
+               unsigned AN2            : 1;
+               unsigned AN3            : 1;
+               unsigned T0CKI          : 1;
+               unsigned AN4            : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+       };
+       struct {
+               unsigned LEDA           : 1;
+               unsigned LEDB           : 1;
+               unsigned VREFM          : 1;
+               unsigned VREFP          : 1;
+               unsigned                : 1;
+               unsigned                : 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                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 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           : 1;
+               unsigned                : 1;
+               unsigned SCL            : 1;
+               unsigned SDA            : 1;
+               unsigned SDO1           : 1;
+               unsigned CK             : 1;
+               unsigned DT             : 1;
+       };
+       struct {
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned SCK1           : 1;
+               unsigned SDI1           : 1;
+               unsigned                : 1;
+               unsigned TX1            : 1;
+               unsigned RX1            : 1;
+       };
+       struct {
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned SCL1           : 1;
+               unsigned SDA1           : 1;
+               unsigned                : 1;
+               unsigned CK1            : 1;
+               unsigned DT1            : 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 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 NOT_SS2        : 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 RD             : 1;
+               unsigned WR             : 1;
+               unsigned CS             : 1;
+               unsigned AD11           : 1;
+               unsigned AD12           : 1;
+               unsigned AD13           : 1;
+               unsigned AD14           : 1;
+               unsigned AD15           : 1;
+       };
+       struct {
+               unsigned NOT_RD         : 1;
+               unsigned NOT_WR         : 1;
+               unsigned NOT_CS         : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+       };
+       struct {
+               unsigned AD8            : 1;
+               unsigned AD9            : 1;
+               unsigned AD10           : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+       };
+} __PORTEbits_t;
+extern volatile __PORTEbits_t __at (0xF84) PORTEbits;
+
+extern __sfr __at (0xF85) PORTF;
+typedef union {
+       struct {
+               unsigned RF0            : 1;
+               unsigned RF1            : 1;
+               unsigned RF2            : 1;
+               unsigned RF3            : 1;
+               unsigned RF4            : 1;
+               unsigned RF5            : 1;
+               unsigned RF6            : 1;
+               unsigned RF7            : 1;
+       };
+       struct {
+               unsigned AN5            : 1;
+               unsigned AN6            : 1;
+               unsigned AN7            : 1;
+               unsigned AN8            : 1;
+               unsigned AN9            : 1;
+               unsigned AN10           : 1;
+               unsigned AN11           : 1;
+               unsigned SS             : 1;
+       };
+       struct {
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned CVREF          : 1;
+               unsigned                : 1;
+               unsigned NOT_SS         : 1;
+       };
+       struct {
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned SS1            : 1;
+       };
+       struct {
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned NOT_SS1        : 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 RG5            : 1;
+               unsigned RG6            : 1;
+               unsigned RG7            : 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                : 1;
+               unsigned CK2            : 1;
+               unsigned DT2            : 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 AD16           : 1;
+               unsigned AD17           : 1;
+               unsigned AD18           : 1;
+               unsigned AD19           : 1;
+               unsigned AN12           : 1;
+               unsigned AN13           : 1;
+               unsigned AN14           : 1;
+               unsigned AN15           : 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;
+       };
+       struct {
+               unsigned                : 1;
+               unsigned NOT_OE         : 1;
+               unsigned NOT_WRL        : 1;
+               unsigned NOT_WRH        : 1;
+               unsigned                : 1;
+               unsigned NOT_CE         : 1;
+               unsigned NOT_LB         : 1;
+               unsigned NOT_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 REPU           : 1;
+               unsigned RDPU           : 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 LATF0          : 1;
+               unsigned LATF1          : 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 LATG5          : 1;
+               unsigned LATG6          : 1;
+               unsigned LATG7          : 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 RF0            : 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 TRISF0         : 1;
+               unsigned TRISF1         : 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 RG5            : 1;
+               unsigned RG6            : 1;
+               unsigned RG7            : 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 TRISG5         : 1;
+               unsigned TRISG6         : 1;
+               unsigned TRISG7         : 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                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned PPRE           : 1;
+               unsigned PPST0          : 1;
+               unsigned PLLEN          : 1;
+               unsigned PPST1          : 1;
+       };
+} __OSCTUNEbits_t;
+extern volatile __OSCTUNEbits_t __at (0xF9B) OSCTUNEbits;
+
+extern __sfr __at (0xF9C) MEMCON;
+typedef union {
+       struct {
+               unsigned WM0            : 1;
+               unsigned WM1            : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned WAIT0          : 1;
+               unsigned WAIT1          : 1;
+               unsigned                : 1;
+               unsigned EBDIS          : 1;
+       };
+} __MEMCONbits_t;
+extern volatile __MEMCONbits_t __at (0xF9C) MEMCONbits;
+
+extern __sfr __at (0xF9D) PIE1;
+typedef union {
+       struct {
+               unsigned TMR1IE         : 1;
+               unsigned TMR2IE         : 1;
+               unsigned CCP1IE         : 1;
+               unsigned SSPIE          : 1;
+               unsigned TXIE_PIE1      : 1;
+               unsigned RCIE           : 1;
+               unsigned ADIE           : 1;
+               unsigned PSPIE          : 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_PIR1      : 1;
+               unsigned RCIF           : 1;
+               unsigned ADIF           : 1;
+               unsigned PSPIF          : 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 PSPIP          : 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                : 1;
+               unsigned BCLIE          : 1;
+               unsigned ETHWIE         : 1;
+               unsigned ETHIE          : 1;
+               unsigned CMIE           : 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                : 1;
+               unsigned BCLIF          : 1;
+               unsigned ETHWIF         : 1;
+               unsigned ETHIF          : 1;
+               unsigned CMIF           : 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                : 1;
+               unsigned BCLIP          : 1;
+               unsigned ETHWIP         : 1;
+               unsigned ETHIP          : 1;
+               unsigned CMIP           : 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                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+       };
+} __EECON1bits_t;
+extern volatile __EECON1bits_t __at (0xFA6) EECON1bits;
+
+extern __sfr __at (0xFA7) EECON2;
+
+extern __sfr __at (0xFAB) RCSTA;
+typedef union {
+       struct {
+               unsigned RX9D           : 1;
+               unsigned OERR           : 1;
+               unsigned FERR           : 1;
+               unsigned ADDEN          : 1;
+               unsigned CREN           : 1;
+               unsigned SREN           : 1;
+               unsigned RX9            : 1;
+               unsigned SPEN           : 1;
+       };
+       struct {
+               unsigned 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 (0xFAB) RCSTAbits;
+
+extern __sfr __at (0xFAB) RCSTA1;
+typedef union {
+       struct {
+               unsigned RX9D           : 1;
+               unsigned OERR           : 1;
+               unsigned FERR           : 1;
+               unsigned ADDEN          : 1;
+               unsigned CREN           : 1;
+               unsigned SREN           : 1;
+               unsigned RX9            : 1;
+               unsigned SPEN           : 1;
+       };
+       struct {
+               unsigned 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 (0xFAB) RCSTA1bits;
+
+extern __sfr __at (0xFAC) TXSTA;
+typedef union {
+       struct {
+               unsigned TX9D           : 1;
+               unsigned TRMT           : 1;
+               unsigned BRGH           : 1;
+               unsigned SENDB          : 1;
+               unsigned SYNC           : 1;
+               unsigned TXEN           : 1;
+               unsigned TX9            : 1;
+               unsigned CSRC           : 1;
+       };
+       struct {
+               unsigned 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 (0xFAC) TXSTAbits;
+
+extern __sfr __at (0xFAC) TXSTA1;
+typedef union {
+       struct {
+               unsigned TX9D           : 1;
+               unsigned TRMT           : 1;
+               unsigned BRGH           : 1;
+               unsigned SENDB          : 1;
+               unsigned SYNC           : 1;
+               unsigned TXEN           : 1;
+               unsigned TX9            : 1;
+               unsigned CSRC           : 1;
+       };
+       struct {
+               unsigned 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 (0xFAC) TXSTA1bits;
+
+extern __sfr __at (0xFAD) TXREG;
+
+extern __sfr __at (0xFAD) TXREG1;
+
+extern __sfr __at (0xFAE) RCREG;
+
+extern __sfr __at (0xFAE) RCREG1;
+
+extern __sfr __at (0xFAF) SPBRG;
+
+extern __sfr __at (0xFAF) SPBRG1;
+
+extern __sfr __at (0xFB0) PSPCON;
+typedef union {
+       struct {
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned PSPMODE        : 1;
+               unsigned IBOV           : 1;
+               unsigned OBF            : 1;
+               unsigned IBF            : 1;
+       };
+} __PSPCONbits_t;
+extern volatile __PSPCONbits_t __at (0xFB0) PSPCONbits;
+
+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 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 (0xFB1) T3CONbits;
+
+extern __sfr __at (0xFB2) TMR3L;
+
+extern __sfr __at (0xFB3) TMR3H;
+
+extern __sfr __at (0xFB4) CMCON;
+typedef union {
+       struct {
+               unsigned CM0            : 1;
+               unsigned CM1            : 1;
+               unsigned CM2            : 1;
+               unsigned CIS            : 1;
+               unsigned C1INV          : 1;
+               unsigned C2INV          : 1;
+               unsigned C1OUT          : 1;
+               unsigned C2OUT          : 1;
+       };
+} __CMCONbits_t;
+extern volatile __CMCONbits_t __at (0xFB4) CMCONbits;
+
+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;
+       };
+       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 (0xFB6) ECCP1ASbits;
+
+extern __sfr __at (0xFB7) 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 (0xFB7) CCP3CONbits;
+
+extern __sfr __at (0xFB7) 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 (0xFB7) ECCP3CONbits;
+
+extern __sfr __at (0xFB8) CCPR3;
+
+extern __sfr __at (0xFB8) CCPR3L;
+
+extern __sfr __at (0xFB9) CCPR3H;
+
+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 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 (0xFBA) CCP2CONbits;
+
+extern __sfr __at (0xFBA) 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 (0xFBA) ECCP2CONbits;
+
+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;
+       };
+       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 (0xFBD) CCP1CONbits;
+
+extern __sfr __at (0xFBD) 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 (0xFBD) ECCP1CONbits;
+
+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 PCFG0          : 1;
+               unsigned PCFG1          : 1;
+               unsigned PCFG2          : 1;
+               unsigned PCFG3          : 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 DONE           : 1;
+               unsigned CHS0           : 1;
+               unsigned CHS1           : 1;
+               unsigned CHS2           : 1;
+               unsigned CHS3           : 1;
+               unsigned                : 1;
+               unsigned ADCAL          : 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 (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;
+       };
+       struct {
+               unsigned                : 1;
+               unsigned ADMSK          : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 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;
+       };
+       struct {
+               unsigned                : 1;
+               unsigned ADMSK          : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 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) 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) 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 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) TMR1L;
+
+extern __sfr __at (0xFCF) TMR1H;
+
+extern __sfr __at (0xFD0) RCON;
+typedef union {
+       struct {
+               unsigned NOT_BOR        : 1;
+               unsigned NOT_POR        : 1;
+               unsigned NOT_PD         : 1;
+               unsigned NOT_TO         : 1;
+               unsigned NOT_RI         : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned IPEN           : 1;
+       };
+       struct {
+               unsigned BOR            : 1;
+               unsigned POR            : 1;
+               unsigned PD             : 1;
+               unsigned TO             : 1;
+               unsigned RI             : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+       };
+} __RCONbits_t;
+extern volatile __RCONbits_t __at (0xFD0) RCONbits;
+
+extern __sfr __at (0xFD1) WDTCON;
+typedef union {
+       struct {
+               unsigned SWDTE          : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+       };
+       struct {
+               unsigned SWDTEN         : 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) ECON1;
+typedef union {
+       struct {
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned RXEN           : 1;
+               unsigned TXRTS          : 1;
+               unsigned CSUMEN         : 1;
+               unsigned DMAST          : 1;
+               unsigned RXRST          : 1;
+               unsigned TXRST          : 1;
+       };
+} __ECON1bits_t;
+extern volatile __ECON1bits_t __at (0xFD2) ECON1bits;
+
+extern __sfr __at (0xFD3) OSCCON;
+typedef union {
+       struct {
+               unsigned SCS0           : 1;
+               unsigned SCS1           : 1;
+               unsigned                : 1;
+               unsigned OSTS           : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned IDLEN          : 1;
+       };
+} __OSCCONbits_t;
+extern volatile __OSCCONbits_t __at (0xFD3) OSCCONbits;
+
+extern __sfr __at (0xFD5) T0CON;
+typedef union {
+       struct {
+               unsigned T0PS0          : 1;
+               unsigned T0PS1          : 1;
+               unsigned T0PS2          : 1;
+               unsigned PSA            : 1;
+               unsigned T0SE           : 1;
+               unsigned T0CS           : 1;
+               unsigned T08BIT         : 1;
+               unsigned TMR0ON         : 1;
+       };
+} __T0CONbits_t;
+extern volatile __T0CONbits_t __at (0xFD5) T0CONbits;
+
+extern __sfr __at (0xFD6) TMR0L;
+
+extern __sfr __at (0xFD7) TMR0H;
+
+extern __sfr __at (0xFD8) STATUS;
+typedef union {
+       struct {
+               unsigned C              : 1;
+               unsigned DC             : 1;
+               unsigned Z              : 1;
+               unsigned OV             : 1;
+               unsigned N              : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+       };
+} __STATUSbits_t;
+extern volatile __STATUSbits_t __at (0xFD8) STATUSbits;
+
+extern __sfr __at (0xFD9) FSR2L;
+
+extern __sfr __at (0xFDA) FSR2H;
+
+extern __sfr __at (0xFDB) PLUSW2;
+
+extern __sfr __at (0xFDC) PREINC2;
+
+extern __sfr __at (0xFDD) POSTDEC2;
+
+extern __sfr __at (0xFDE) POSTINC2;
+
+extern __sfr __at (0xFDF) INDF2;
+
+extern __sfr __at (0xFE0) BSR;
+
+extern __sfr __at (0xFE1) FSR1L;
+
+extern __sfr __at (0xFE2) FSR1H;
+
+extern __sfr __at (0xFE3) PLUSW1;
+
+extern __sfr __at (0xFE4) PREINC1;
+
+extern __sfr __at (0xFE5) POSTDEC1;
+
+extern __sfr __at (0xFE6) POSTINC1;
+
+extern __sfr __at (0xFE7) INDF1;
+
+extern __sfr __at (0xFE8) WREG;
+
+extern __sfr __at (0xFE9) FSR0L;
+
+extern __sfr __at (0xFEA) FSR0H;
+
+extern __sfr __at (0xFEB) PLUSW0;
+
+extern __sfr __at (0xFEC) PREINC0;
+
+extern __sfr __at (0xFED) POSTDEC0;
+
+extern __sfr __at (0xFEE) POSTINC0;
+
+extern __sfr __at (0xFEF) INDF0;
+
+extern __sfr __at (0xFF0) INTCON3;
+typedef union {
+       struct {
+               unsigned 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 INT3IP         : 1;
+               unsigned T0IP           : 1;
+               unsigned INTEDG3        : 1;
+               unsigned INTEDG2        : 1;
+               unsigned INTEDG1        : 1;
+               unsigned INTEDG0        : 1;
+               unsigned NOT_RBPU       : 1;
+       };
+       struct {
+               unsigned                : 1;
+               unsigned                : 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                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 1;
+               unsigned                : 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/pic18f96j65.h b/device/include/pic16/pic18f96j65.h
new file mode 100644 (file)
index 0000000..6e6755f
--- /dev/null
@@ -0,0 +1,6 @@
+/*
+ * pic18f96j65.h - PIC18F96J65 Device Library Header
+ */
+
+#include "pic18f96j60.h"
+
diff --git a/device/include/pic16/pic18f97j60.h b/device/include/pic16/pic18f97j60.h
new file mode 100644 (file)
index 0000000..c02e6a7
--- /dev/null
@@ -0,0 +1,6 @@
+/*
+ * pic18f97j60.h - PIC18F97J60 Device Library Header
+ */
+
+#include "pic18f96j60.h"
+
index 12f9149f7fa63ed081fa880513919878047db0d2..189365aa184bb9a46572dadc4bfe6d620ecae9e1 100644 (file)
 #elif defined(pic18f6680)
 #  include <pic18f6680.h>
 
+#elif defined(pic18f66j60)
+#  include <pic18f66j60.h>
+
+#elif defined(pic18f66j65)
+#  include <pic18f66j65.h>
+
 #elif defined(pic18f6720)
 #  include <pic18f6720.h>
 
+#elif defined(pic18f67j60)
+#  include <pic18f67j60.h>
+
 #elif defined(pic18f8520)
 #  include <pic18f8520.h>
 
 #elif defined(pic18f8680)
 #  include <pic18f8680.h>
 
+#elif defined(pic18f86j60)
+#  include <pic18f86j60.h>
+
+#elif defined(pic18f86j65)
+#  include <pic18f86j65.h>
+
 #elif defined(pic18f8720)
 #  include <pic18f8720.h>
 
+#elif defined(pic18f87j60)
+#  include <pic18f87j60.h>
+
+#elif defined(pic18f96j60)
+#  include <pic18f96j60.h>
+
+#elif defined(pic18f96j65)
+#  include <pic18f96j65.h>
+
+#elif defined(pic18f97j60)
+#  include <pic18f97j60.h>
+
+
 #else
 #  error Unsupported processor
 
diff --git a/device/lib/pic16/libdev/pic18f66j60.c b/device/lib/pic16/libdev/pic18f66j60.c
new file mode 100644 (file)
index 0000000..9f9f0c5
--- /dev/null
@@ -0,0 +1,661 @@
+/*
+ * pic18f66j60.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 <pic18f66j60.h>
+
+
+__sfr __at (0xE80) MAADR5;
+
+__sfr __at (0xE81) MAADR6;
+
+__sfr __at (0xE82) MAADR3;
+
+__sfr __at (0xE83) MAADR4;
+
+__sfr __at (0xE84) MAADR1;
+
+__sfr __at (0xE85) MAADR2;
+
+__sfr __at (0xE86) EBSTSD;
+
+__sfr __at (0xE87) EBSTCON;
+volatile __EBSTCONbits_t __at (0xE87) EBSTCONbits;
+
+__sfr __at (0xE88) EBSTCS;
+
+__sfr __at (0xE88) EBSTCSL;
+
+__sfr __at (0xE89) EBSTCSH;
+
+__sfr __at (0xE8A) MISTAT;
+volatile __MISTATbits_t __at (0xE8A) MISTATbits;
+
+__sfr __at (0xE97) EFLOCON;
+volatile __EFLOCONbits_t __at (0xE97) EFLOCONbits;
+
+__sfr __at (0xE98) EPAUS;
+
+__sfr __at (0xE98) EPAUSL;
+
+__sfr __at (0xE99) EPAUSH;
+
+__sfr __at (0xEA0) MACON1;
+volatile __MACON1bits_t __at (0xEA0) MACON1bits;
+
+__sfr __at (0xEA1) MACON2;
+volatile __MACON2bits_t __at (0xEA1) MACON2bits;
+
+__sfr __at (0xEA2) MACON3;
+volatile __MACON3bits_t __at (0xEA2) MACON3bits;
+
+__sfr __at (0xEA3) MACON4;
+volatile __MACON4bits_t __at (0xEA3) MACON4bits;
+
+__sfr __at (0xEA4) MABBIPG;
+
+__sfr __at (0xEA6) MAIPG;
+
+__sfr __at (0xEA6) MAIPGL;
+
+__sfr __at (0xEA7) MAIPGH;
+
+__sfr __at (0xEA8) MACLCON1;
+volatile __MACLCON1bits_t __at (0xEA8) MACLCON1bits;
+
+__sfr __at (0xEA9) MACLCON2;
+volatile __MACLCON2bits_t __at (0xEA9) MACLCON2bits;
+
+__sfr __at (0xEAA) MAMXFL;
+
+__sfr __at (0xEAA) MAMXFLL;
+
+__sfr __at (0xEAB) MAMXFLH;
+
+__sfr __at (0xEB1) MICON;
+volatile __MICONbits_t __at (0xEB1) MICONbits;
+
+__sfr __at (0xEB2) MICMD;
+volatile __MICMDbits_t __at (0xEB2) MICMDbits;
+
+__sfr __at (0xEB4) MIREGADR;
+
+__sfr __at (0xEB6) MIWR;
+
+__sfr __at (0xEB6) MIWRL;
+
+__sfr __at (0xEB7) MIWRH;
+
+__sfr __at (0xEB8) MIRD;
+
+__sfr __at (0xEB8) MIRDL;
+
+__sfr __at (0xEB9) MIRDH;
+
+__sfr __at (0xEC0) EHT0;
+
+__sfr __at (0xEC1) EHT1;
+
+__sfr __at (0xEC2) EHT2;
+
+__sfr __at (0xEC3) EHT3;
+
+__sfr __at (0xEC4) EHT4;
+
+__sfr __at (0xEC5) EHT5;
+
+__sfr __at (0xEC6) EHT6;
+
+__sfr __at (0xEC7) EHT7;
+
+__sfr __at (0xEC8) EPMM0;
+
+__sfr __at (0xEC9) EPMM1;
+
+__sfr __at (0xECA) EPMM2;
+
+__sfr __at (0xECB) EPMM3;
+
+__sfr __at (0xECC) EPMM4;
+
+__sfr __at (0xECD) EPMM5;
+
+__sfr __at (0xECE) EPMM6;
+
+__sfr __at (0xECF) EPMM7;
+
+__sfr __at (0xED0) EPMCS;
+
+__sfr __at (0xED0) EPMCSL;
+
+__sfr __at (0xED1) EPMCSH;
+
+__sfr __at (0xED4) EPMO;
+
+__sfr __at (0xED4) EPMOL;
+
+__sfr __at (0xED5) EPMOH;
+
+__sfr __at (0xED6) EWOLIE;
+volatile __EWOLIEbits_t __at (0xED6) EWOLIEbits;
+
+__sfr __at (0xED7) EWOLIR;
+volatile __EWOLIRbits_t __at (0xED7) EWOLIRbits;
+
+__sfr __at (0xED8) ERXFCON;
+volatile __ERXFCONbits_t __at (0xED8) ERXFCONbits;
+
+__sfr __at (0xED9) EPKTCNT;
+
+__sfr __at (0xEE2) EWRPT;
+
+__sfr __at (0xEE2) EWRPTL;
+
+__sfr __at (0xEE3) EWRPTH;
+
+__sfr __at (0xEE4) ETXST;
+
+__sfr __at (0xEE4) ETXSTL;
+
+__sfr __at (0xEE5) ETXSTH;
+
+__sfr __at (0xEE6) ETXND;
+
+__sfr __at (0xEE6) ETXNDL;
+
+__sfr __at (0xEE7) ETXNDH;
+
+__sfr __at (0xEE8) ERXST;
+
+__sfr __at (0xEE8) ERXSTL;
+
+__sfr __at (0xEE9) ERXSTH;
+
+__sfr __at (0xEEA) ERXND;
+
+__sfr __at (0xEEA) ERXNDL;
+
+__sfr __at (0xEEB) ERXNDH;
+
+__sfr __at (0xEEC) ERXRDPT;
+
+__sfr __at (0xEEC) ERXRDPTL;
+
+__sfr __at (0xEED) ERXRDPTH;
+
+__sfr __at (0xEEE) ERXWRPT;
+
+__sfr __at (0xEEE) ERXWRPTL;
+
+__sfr __at (0xEEF) ERXWRPTH;
+
+__sfr __at (0xEF0) EDMAST;
+
+__sfr __at (0xEF0) EDMASTL;
+
+__sfr __at (0xEF1) EDMASTH;
+
+__sfr __at (0xEF2) EDMAND;
+
+__sfr __at (0xEF2) EDMANDL;
+
+__sfr __at (0xEF3) EDMANDH;
+
+__sfr __at (0xEF4) EDMADST;
+
+__sfr __at (0xEF4) EDMADSTL;
+
+__sfr __at (0xEF5) EDMADSTH;
+
+__sfr __at (0xEF6) EDMACS;
+
+__sfr __at (0xEF6) EDMACSL;
+
+__sfr __at (0xEF7) EDMACSH;
+
+__sfr __at (0xEFB) EIE;
+volatile __EIEbits_t __at (0xEFB) EIEbits;
+
+__sfr __at (0xEFD) ESTAT;
+volatile __ESTATbits_t __at (0xEFD) ESTATbits;
+
+__sfr __at (0xEFE) ECON2;
+volatile __ECON2bits_t __at (0xEFE) ECON2bits;
+
+__sfr __at (0xF60) EIR;
+volatile __EIRbits_t __at (0xF60) EIRbits;
+
+__sfr __at (0xF61) EDATA;
+volatile __EDATAbits_t __at (0xF61) EDATAbits;
+
+__sfr __at (0xF67) ECCP2DEL;
+volatile __ECCP2DELbits_t __at (0xF67) ECCP2DELbits;
+
+__sfr __at (0xF68) ECCP2AS;
+volatile __ECCP2ASbits_t __at (0xF68) ECCP2ASbits;
+
+__sfr __at (0xF69) ECCP3DEL;
+volatile __ECCP3DELbits_t __at (0xF69) ECCP3DELbits;
+
+__sfr __at (0xF6A) ECCP3AS;
+volatile __ECCP3ASbits_t __at (0xF6A) ECCP3ASbits;
+
+__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) PR4;
+
+__sfr __at (0xF78) TMR4;
+
+__sfr __at (0xF79) ECCP1DEL;
+volatile __ECCP1DELbits_t __at (0xF79) ECCP1DELbits;
+
+__sfr __at (0xF7A) ERDPT;
+
+__sfr __at (0xF7A) ERDPTL;
+
+__sfr __at (0xF7B) ERDPTH;
+
+__sfr __at (0xF7E) BAUDCON;
+volatile __BAUDCONbits_t __at (0xF7E) BAUDCONbits;
+
+__sfr __at (0xF7E) BAUDCON1;
+volatile __BAUDCON1bits_t __at (0xF7E) BAUDCON1bits;
+
+__sfr __at (0xF7E) BAUDCTL;
+volatile __BAUDCTLbits_t __at (0xF7E) BAUDCTLbits;
+
+__sfr __at (0xF7E) BAUDCTL1;
+volatile __BAUDCTL1bits_t __at (0xF7E) BAUDCTL1bits;
+
+__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 (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 (0xFAB) RCSTA;
+volatile __RCSTAbits_t __at (0xFAB) RCSTAbits;
+
+__sfr __at (0xFAB) RCSTA1;
+volatile __RCSTA1bits_t __at (0xFAB) RCSTA1bits;
+
+__sfr __at (0xFAC) TXSTA;
+volatile __TXSTAbits_t __at (0xFAC) TXSTAbits;
+
+__sfr __at (0xFAC) TXSTA1;
+volatile __TXSTA1bits_t __at (0xFAC) TXSTA1bits;
+
+__sfr __at (0xFAD) TXREG;
+
+__sfr __at (0xFAD) TXREG1;
+
+__sfr __at (0xFAE) RCREG;
+
+__sfr __at (0xFAE) RCREG1;
+
+__sfr __at (0xFAF) SPBRG;
+
+__sfr __at (0xFAF) SPBRG1;
+
+__sfr __at (0xFB1) T3CON;
+volatile __T3CONbits_t __at (0xFB1) T3CONbits;
+
+__sfr __at (0xFB2) TMR3L;
+
+__sfr __at (0xFB3) TMR3H;
+
+__sfr __at (0xFB4) CMCON;
+volatile __CMCONbits_t __at (0xFB4) CMCONbits;
+
+__sfr __at (0xFB5) CVRCON;
+volatile __CVRCONbits_t __at (0xFB5) CVRCONbits;
+
+__sfr __at (0xFB6) ECCP1AS;
+volatile __ECCP1ASbits_t __at (0xFB6) ECCP1ASbits;
+
+__sfr __at (0xFB7) CCP3CON;
+volatile __CCP3CONbits_t __at (0xFB7) CCP3CONbits;
+
+__sfr __at (0xFB7) ECCP3CON;
+volatile __ECCP3CONbits_t __at (0xFB7) ECCP3CONbits;
+
+__sfr __at (0xFB8) CCPR3;
+
+__sfr __at (0xFB8) CCPR3L;
+
+__sfr __at (0xFB9) CCPR3H;
+
+__sfr __at (0xFBA) CCP2CON;
+volatile __CCP2CONbits_t __at (0xFBA) CCP2CONbits;
+
+__sfr __at (0xFBA) ECCP2CON;
+volatile __ECCP2CONbits_t __at (0xFBA) ECCP2CONbits;
+
+__sfr __at (0xFBB) CCPR2;
+
+__sfr __at (0xFBB) CCPR2L;
+
+__sfr __at (0xFBC) CCPR2H;
+
+__sfr __at (0xFBD) CCP1CON;
+volatile __CCP1CONbits_t __at (0xFBD) CCP1CONbits;
+
+__sfr __at (0xFBD) ECCP1CON;
+volatile __ECCP1CONbits_t __at (0xFBD) ECCP1CONbits;
+
+__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) 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) 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) 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) ECON1;
+volatile __ECON1bits_t __at (0xFD2) ECON1bits;
+
+__sfr __at (0xFD3) OSCCON;
+volatile __OSCCONbits_t __at (0xFD3) OSCCONbits;
+
+__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/pic18f66j65.c b/device/lib/pic16/libdev/pic18f66j65.c
new file mode 100644 (file)
index 0000000..8e05a02
--- /dev/null
@@ -0,0 +1,6 @@
+/*
+ * pic18f66j65.c - device specific definitions
+ */
+
+#include "pic18f66j60.c"
+
diff --git a/device/lib/pic16/libdev/pic18f67j60.c b/device/lib/pic16/libdev/pic18f67j60.c
new file mode 100644 (file)
index 0000000..5fe635d
--- /dev/null
@@ -0,0 +1,6 @@
+/*
+ * pic18f67j60.c - device specific definitions
+ */
+
+#include "pic18f66j60.c"
+
diff --git a/device/lib/pic16/libdev/pic18f86j60.c b/device/lib/pic16/libdev/pic18f86j60.c
new file mode 100644 (file)
index 0000000..4feea2e
--- /dev/null
@@ -0,0 +1,705 @@
+/*
+ * pic18f86j60.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 <pic18f86j60.h>
+
+
+__sfr __at (0xE80) MAADR5;
+
+__sfr __at (0xE81) MAADR6;
+
+__sfr __at (0xE82) MAADR3;
+
+__sfr __at (0xE83) MAADR4;
+
+__sfr __at (0xE84) MAADR1;
+
+__sfr __at (0xE85) MAADR2;
+
+__sfr __at (0xE86) EBSTSD;
+
+__sfr __at (0xE87) EBSTCON;
+volatile __EBSTCONbits_t __at (0xE87) EBSTCONbits;
+
+__sfr __at (0xE88) EBSTCS;
+
+__sfr __at (0xE88) EBSTCSL;
+
+__sfr __at (0xE89) EBSTCSH;
+
+__sfr __at (0xE8A) MISTAT;
+volatile __MISTATbits_t __at (0xE8A) MISTATbits;
+
+__sfr __at (0xE97) EFLOCON;
+volatile __EFLOCONbits_t __at (0xE97) EFLOCONbits;
+
+__sfr __at (0xE98) EPAUS;
+
+__sfr __at (0xE98) EPAUSL;
+
+__sfr __at (0xE99) EPAUSH;
+
+__sfr __at (0xEA0) MACON1;
+volatile __MACON1bits_t __at (0xEA0) MACON1bits;
+
+__sfr __at (0xEA1) MACON2;
+volatile __MACON2bits_t __at (0xEA1) MACON2bits;
+
+__sfr __at (0xEA2) MACON3;
+volatile __MACON3bits_t __at (0xEA2) MACON3bits;
+
+__sfr __at (0xEA3) MACON4;
+volatile __MACON4bits_t __at (0xEA3) MACON4bits;
+
+__sfr __at (0xEA4) MABBIPG;
+
+__sfr __at (0xEA6) MAIPG;
+
+__sfr __at (0xEA6) MAIPGL;
+
+__sfr __at (0xEA7) MAIPGH;
+
+__sfr __at (0xEA8) MACLCON1;
+volatile __MACLCON1bits_t __at (0xEA8) MACLCON1bits;
+
+__sfr __at (0xEA9) MACLCON2;
+volatile __MACLCON2bits_t __at (0xEA9) MACLCON2bits;
+
+__sfr __at (0xEAA) MAMXFL;
+
+__sfr __at (0xEAA) MAMXFLL;
+
+__sfr __at (0xEAB) MAMXFLH;
+
+__sfr __at (0xEB1) MICON;
+volatile __MICONbits_t __at (0xEB1) MICONbits;
+
+__sfr __at (0xEB2) MICMD;
+volatile __MICMDbits_t __at (0xEB2) MICMDbits;
+
+__sfr __at (0xEB4) MIREGADR;
+
+__sfr __at (0xEB6) MIWR;
+
+__sfr __at (0xEB6) MIWRL;
+
+__sfr __at (0xEB7) MIWRH;
+
+__sfr __at (0xEB8) MIRD;
+
+__sfr __at (0xEB8) MIRDL;
+
+__sfr __at (0xEB9) MIRDH;
+
+__sfr __at (0xEC0) EHT0;
+
+__sfr __at (0xEC1) EHT1;
+
+__sfr __at (0xEC2) EHT2;
+
+__sfr __at (0xEC3) EHT3;
+
+__sfr __at (0xEC4) EHT4;
+
+__sfr __at (0xEC5) EHT5;
+
+__sfr __at (0xEC6) EHT6;
+
+__sfr __at (0xEC7) EHT7;
+
+__sfr __at (0xEC8) EPMM0;
+
+__sfr __at (0xEC9) EPMM1;
+
+__sfr __at (0xECA) EPMM2;
+
+__sfr __at (0xECB) EPMM3;
+
+__sfr __at (0xECC) EPMM4;
+
+__sfr __at (0xECD) EPMM5;
+
+__sfr __at (0xECE) EPMM6;
+
+__sfr __at (0xECF) EPMM7;
+
+__sfr __at (0xED0) EPMCS;
+
+__sfr __at (0xED0) EPMCSL;
+
+__sfr __at (0xED1) EPMCSH;
+
+__sfr __at (0xED4) EPMO;
+
+__sfr __at (0xED4) EPMOL;
+
+__sfr __at (0xED5) EPMOH;
+
+__sfr __at (0xED6) EWOLIE;
+volatile __EWOLIEbits_t __at (0xED6) EWOLIEbits;
+
+__sfr __at (0xED7) EWOLIR;
+volatile __EWOLIRbits_t __at (0xED7) EWOLIRbits;
+
+__sfr __at (0xED8) ERXFCON;
+volatile __ERXFCONbits_t __at (0xED8) ERXFCONbits;
+
+__sfr __at (0xED9) EPKTCNT;
+
+__sfr __at (0xEE2) EWRPT;
+
+__sfr __at (0xEE2) EWRPTL;
+
+__sfr __at (0xEE3) EWRPTH;
+
+__sfr __at (0xEE4) ETXST;
+
+__sfr __at (0xEE4) ETXSTL;
+
+__sfr __at (0xEE5) ETXSTH;
+
+__sfr __at (0xEE6) ETXND;
+
+__sfr __at (0xEE6) ETXNDL;
+
+__sfr __at (0xEE7) ETXNDH;
+
+__sfr __at (0xEE8) ERXST;
+
+__sfr __at (0xEE8) ERXSTL;
+
+__sfr __at (0xEE9) ERXSTH;
+
+__sfr __at (0xEEA) ERXND;
+
+__sfr __at (0xEEA) ERXNDL;
+
+__sfr __at (0xEEB) ERXNDH;
+
+__sfr __at (0xEEC) ERXRDPT;
+
+__sfr __at (0xEEC) ERXRDPTL;
+
+__sfr __at (0xEED) ERXRDPTH;
+
+__sfr __at (0xEEE) ERXWRPT;
+
+__sfr __at (0xEEE) ERXWRPTL;
+
+__sfr __at (0xEEF) ERXWRPTH;
+
+__sfr __at (0xEF0) EDMAST;
+
+__sfr __at (0xEF0) EDMASTL;
+
+__sfr __at (0xEF1) EDMASTH;
+
+__sfr __at (0xEF2) EDMAND;
+
+__sfr __at (0xEF2) EDMANDL;
+
+__sfr __at (0xEF3) EDMANDH;
+
+__sfr __at (0xEF4) EDMADST;
+
+__sfr __at (0xEF4) EDMADSTL;
+
+__sfr __at (0xEF5) EDMADSTH;
+
+__sfr __at (0xEF6) EDMACS;
+
+__sfr __at (0xEF6) EDMACSL;
+
+__sfr __at (0xEF7) EDMACSH;
+
+__sfr __at (0xEFB) EIE;
+volatile __EIEbits_t __at (0xEFB) EIEbits;
+
+__sfr __at (0xEFD) ESTAT;
+volatile __ESTATbits_t __at (0xEFD) ESTATbits;
+
+__sfr __at (0xEFE) ECON2;
+volatile __ECON2bits_t __at (0xEFE) ECON2bits;
+
+__sfr __at (0xF60) EIR;
+volatile __EIRbits_t __at (0xF60) EIRbits;
+
+__sfr __at (0xF61) EDATA;
+volatile __EDATAbits_t __at (0xF61) EDATAbits;
+
+__sfr __at (0xF67) ECCP2DEL;
+volatile __ECCP2DELbits_t __at (0xF67) ECCP2DELbits;
+
+__sfr __at (0xF68) ECCP2AS;
+volatile __ECCP2ASbits_t __at (0xF68) ECCP2ASbits;
+
+__sfr __at (0xF69) ECCP3DEL;
+volatile __ECCP3DELbits_t __at (0xF69) ECCP3DELbits;
+
+__sfr __at (0xF6A) ECCP3AS;
+volatile __ECCP3ASbits_t __at (0xF6A) ECCP3ASbits;
+
+__sfr __at (0xF6B) RCSTA2;
+volatile __RCSTA2bits_t __at (0xF6B) RCSTA2bits;
+
+__sfr __at (0xF6C) TXSTA2;
+volatile __TXSTA2bits_t __at (0xF6C) TXSTA2bits;
+
+__sfr __at (0xF6D) TXREG2;
+
+__sfr __at (0xF6E) RCREG2;
+
+__sfr __at (0xF6F) SPBRG2;
+
+__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) PR4;
+
+__sfr __at (0xF78) TMR4;
+
+__sfr __at (0xF79) ECCP1DEL;
+volatile __ECCP1DELbits_t __at (0xF79) ECCP1DELbits;
+
+__sfr __at (0xF7A) ERDPT;
+
+__sfr __at (0xF7A) ERDPTL;
+
+__sfr __at (0xF7B) ERDPTH;
+
+__sfr __at (0xF7C) BAUDCON2;
+volatile __BAUDCON2bits_t __at (0xF7C) BAUDCON2bits;
+
+__sfr __at (0xF7C) BAUDCTL2;
+volatile __BAUDCTL2bits_t __at (0xF7C) BAUDCTL2bits;
+
+__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 (0xF7E) BAUDCTL;
+volatile __BAUDCTLbits_t __at (0xF7E) BAUDCTLbits;
+
+__sfr __at (0xF7E) BAUDCTL1;
+volatile __BAUDCTL1bits_t __at (0xF7E) BAUDCTL1bits;
+
+__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 (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 (0xFAB) RCSTA;
+volatile __RCSTAbits_t __at (0xFAB) RCSTAbits;
+
+__sfr __at (0xFAB) RCSTA1;
+volatile __RCSTA1bits_t __at (0xFAB) RCSTA1bits;
+
+__sfr __at (0xFAC) TXSTA;
+volatile __TXSTAbits_t __at (0xFAC) TXSTAbits;
+
+__sfr __at (0xFAC) TXSTA1;
+volatile __TXSTA1bits_t __at (0xFAC) TXSTA1bits;
+
+__sfr __at (0xFAD) TXREG;
+
+__sfr __at (0xFAD) TXREG1;
+
+__sfr __at (0xFAE) RCREG;
+
+__sfr __at (0xFAE) RCREG1;
+
+__sfr __at (0xFAF) SPBRG;
+
+__sfr __at (0xFAF) SPBRG1;
+
+__sfr __at (0xFB1) T3CON;
+volatile __T3CONbits_t __at (0xFB1) T3CONbits;
+
+__sfr __at (0xFB2) TMR3L;
+
+__sfr __at (0xFB3) TMR3H;
+
+__sfr __at (0xFB4) CMCON;
+volatile __CMCONbits_t __at (0xFB4) CMCONbits;
+
+__sfr __at (0xFB5) CVRCON;
+volatile __CVRCONbits_t __at (0xFB5) CVRCONbits;
+
+__sfr __at (0xFB6) ECCP1AS;
+volatile __ECCP1ASbits_t __at (0xFB6) ECCP1ASbits;
+
+__sfr __at (0xFB7) CCP3CON;
+volatile __CCP3CONbits_t __at (0xFB7) CCP3CONbits;
+
+__sfr __at (0xFB7) ECCP3CON;
+volatile __ECCP3CONbits_t __at (0xFB7) ECCP3CONbits;
+
+__sfr __at (0xFB8) CCPR3;
+
+__sfr __at (0xFB8) CCPR3L;
+
+__sfr __at (0xFB9) CCPR3H;
+
+__sfr __at (0xFBA) CCP2CON;
+volatile __CCP2CONbits_t __at (0xFBA) CCP2CONbits;
+
+__sfr __at (0xFBA) ECCP2CON;
+volatile __ECCP2CONbits_t __at (0xFBA) ECCP2CONbits;
+
+__sfr __at (0xFBB) CCPR2;
+
+__sfr __at (0xFBB) CCPR2L;
+
+__sfr __at (0xFBC) CCPR2H;
+
+__sfr __at (0xFBD) CCP1CON;
+volatile __CCP1CONbits_t __at (0xFBD) CCP1CONbits;
+
+__sfr __at (0xFBD) ECCP1CON;
+volatile __ECCP1CONbits_t __at (0xFBD) ECCP1CONbits;
+
+__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) 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) 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) 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) ECON1;
+volatile __ECON1bits_t __at (0xFD2) ECON1bits;
+
+__sfr __at (0xFD3) OSCCON;
+volatile __OSCCONbits_t __at (0xFD3) OSCCONbits;
+
+__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/pic18f86j65.c b/device/lib/pic16/libdev/pic18f86j65.c
new file mode 100644 (file)
index 0000000..c815a55
--- /dev/null
@@ -0,0 +1,6 @@
+/*
+ * pic18f86j65.c - device specific definitions
+ */
+
+#include "pic18f86j60.c"
+
diff --git a/device/lib/pic16/libdev/pic18f87j60.c b/device/lib/pic16/libdev/pic18f87j60.c
new file mode 100644 (file)
index 0000000..966e4c0
--- /dev/null
@@ -0,0 +1,6 @@
+/*
+ * pic18f87j60.c - device specific definitions
+ */
+
+#include "pic18f86j60.c"
+
diff --git a/device/lib/pic16/libdev/pic18f96j60.c b/device/lib/pic16/libdev/pic18f96j60.c
new file mode 100644 (file)
index 0000000..685a2a6
--- /dev/null
@@ -0,0 +1,724 @@
+/*
+ * pic18f96j60.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 <pic18f96j60.h>
+
+
+__sfr __at (0xE80) MAADR5;
+
+__sfr __at (0xE81) MAADR6;
+
+__sfr __at (0xE82) MAADR3;
+
+__sfr __at (0xE83) MAADR4;
+
+__sfr __at (0xE84) MAADR1;
+
+__sfr __at (0xE85) MAADR2;
+
+__sfr __at (0xE86) EBSTSD;
+
+__sfr __at (0xE87) EBSTCON;
+volatile __EBSTCONbits_t __at (0xE87) EBSTCONbits;
+
+__sfr __at (0xE88) EBSTCS;
+
+__sfr __at (0xE88) EBSTCSL;
+
+__sfr __at (0xE89) EBSTCSH;
+
+__sfr __at (0xE8A) MISTAT;
+volatile __MISTATbits_t __at (0xE8A) MISTATbits;
+
+__sfr __at (0xE97) EFLOCON;
+volatile __EFLOCONbits_t __at (0xE97) EFLOCONbits;
+
+__sfr __at (0xE98) EPAUS;
+
+__sfr __at (0xE98) EPAUSL;
+
+__sfr __at (0xE99) EPAUSH;
+
+__sfr __at (0xEA0) MACON1;
+volatile __MACON1bits_t __at (0xEA0) MACON1bits;
+
+__sfr __at (0xEA1) MACON2;
+volatile __MACON2bits_t __at (0xEA1) MACON2bits;
+
+__sfr __at (0xEA2) MACON3;
+volatile __MACON3bits_t __at (0xEA2) MACON3bits;
+
+__sfr __at (0xEA3) MACON4;
+volatile __MACON4bits_t __at (0xEA3) MACON4bits;
+
+__sfr __at (0xEA4) MABBIPG;
+
+__sfr __at (0xEA6) MAIPG;
+
+__sfr __at (0xEA6) MAIPGL;
+
+__sfr __at (0xEA7) MAIPGH;
+
+__sfr __at (0xEA8) MACLCON1;
+volatile __MACLCON1bits_t __at (0xEA8) MACLCON1bits;
+
+__sfr __at (0xEA9) MACLCON2;
+volatile __MACLCON2bits_t __at (0xEA9) MACLCON2bits;
+
+__sfr __at (0xEAA) MAMXFL;
+
+__sfr __at (0xEAA) MAMXFLL;
+
+__sfr __at (0xEAB) MAMXFLH;
+
+__sfr __at (0xEB1) MICON;
+volatile __MICONbits_t __at (0xEB1) MICONbits;
+
+__sfr __at (0xEB2) MICMD;
+volatile __MICMDbits_t __at (0xEB2) MICMDbits;
+
+__sfr __at (0xEB4) MIREGADR;
+
+__sfr __at (0xEB6) MIWR;
+
+__sfr __at (0xEB6) MIWRL;
+
+__sfr __at (0xEB7) MIWRH;
+
+__sfr __at (0xEB8) MIRD;
+
+__sfr __at (0xEB8) MIRDL;
+
+__sfr __at (0xEB9) MIRDH;
+
+__sfr __at (0xEC0) EHT0;
+
+__sfr __at (0xEC1) EHT1;
+
+__sfr __at (0xEC2) EHT2;
+
+__sfr __at (0xEC3) EHT3;
+
+__sfr __at (0xEC4) EHT4;
+
+__sfr __at (0xEC5) EHT5;
+
+__sfr __at (0xEC6) EHT6;
+
+__sfr __at (0xEC7) EHT7;
+
+__sfr __at (0xEC8) EPMM0;
+
+__sfr __at (0xEC9) EPMM1;
+
+__sfr __at (0xECA) EPMM2;
+
+__sfr __at (0xECB) EPMM3;
+
+__sfr __at (0xECC) EPMM4;
+
+__sfr __at (0xECD) EPMM5;
+
+__sfr __at (0xECE) EPMM6;
+
+__sfr __at (0xECF) EPMM7;
+
+__sfr __at (0xED0) EPMCS;
+
+__sfr __at (0xED0) EPMCSL;
+
+__sfr __at (0xED1) EPMCSH;
+
+__sfr __at (0xED4) EPMO;
+
+__sfr __at (0xED4) EPMOL;
+
+__sfr __at (0xED5) EPMOH;
+
+__sfr __at (0xED6) EWOLIE;
+volatile __EWOLIEbits_t __at (0xED6) EWOLIEbits;
+
+__sfr __at (0xED7) EWOLIR;
+volatile __EWOLIRbits_t __at (0xED7) EWOLIRbits;
+
+__sfr __at (0xED8) ERXFCON;
+volatile __ERXFCONbits_t __at (0xED8) ERXFCONbits;
+
+__sfr __at (0xED9) EPKTCNT;
+
+__sfr __at (0xEE2) EWRPT;
+
+__sfr __at (0xEE2) EWRPTL;
+
+__sfr __at (0xEE3) EWRPTH;
+
+__sfr __at (0xEE4) ETXST;
+
+__sfr __at (0xEE4) ETXSTL;
+
+__sfr __at (0xEE5) ETXSTH;
+
+__sfr __at (0xEE6) ETXND;
+
+__sfr __at (0xEE6) ETXNDL;
+
+__sfr __at (0xEE7) ETXNDH;
+
+__sfr __at (0xEE8) ERXST;
+
+__sfr __at (0xEE8) ERXSTL;
+
+__sfr __at (0xEE9) ERXSTH;
+
+__sfr __at (0xEEA) ERXND;
+
+__sfr __at (0xEEA) ERXNDL;
+
+__sfr __at (0xEEB) ERXNDH;
+
+__sfr __at (0xEEC) ERXRDPT;
+
+__sfr __at (0xEEC) ERXRDPTL;
+
+__sfr __at (0xEED) ERXRDPTH;
+
+__sfr __at (0xEEE) ERXWRPT;
+
+__sfr __at (0xEEE) ERXWRPTL;
+
+__sfr __at (0xEEF) ERXWRPTH;
+
+__sfr __at (0xEF0) EDMAST;
+
+__sfr __at (0xEF0) EDMASTL;
+
+__sfr __at (0xEF1) EDMASTH;
+
+__sfr __at (0xEF2) EDMAND;
+
+__sfr __at (0xEF2) EDMANDL;
+
+__sfr __at (0xEF3) EDMANDH;
+
+__sfr __at (0xEF4) EDMADST;
+
+__sfr __at (0xEF4) EDMADSTL;
+
+__sfr __at (0xEF5) EDMADSTH;
+
+__sfr __at (0xEF6) EDMACS;
+
+__sfr __at (0xEF6) EDMACSL;
+
+__sfr __at (0xEF7) EDMACSH;
+
+__sfr __at (0xEFB) EIE;
+volatile __EIEbits_t __at (0xEFB) EIEbits;
+
+__sfr __at (0xEFD) ESTAT;
+volatile __ESTATbits_t __at (0xEFD) ESTATbits;
+
+__sfr __at (0xEFE) ECON2;
+volatile __ECON2bits_t __at (0xEFE) ECON2bits;
+
+__sfr __at (0xF60) EIR;
+volatile __EIRbits_t __at (0xF60) EIRbits;
+
+__sfr __at (0xF61) EDATA;
+volatile __EDATAbits_t __at (0xF61) EDATAbits;
+
+__sfr __at (0xF62) SSP2CON2;
+volatile __SSP2CON2bits_t __at (0xF62) SSP2CON2bits;
+
+__sfr __at (0xF63) SSP2CON1;
+volatile __SSP2CON1bits_t __at (0xF63) SSP2CON1bits;
+
+__sfr __at (0xF64) SSP2STAT;
+volatile __SSP2STATbits_t __at (0xF64) SSP2STATbits;
+
+__sfr __at (0xF65) SSP2ADD;
+
+__sfr __at (0xF66) SSP2BUF;
+
+__sfr __at (0xF67) ECCP2DEL;
+volatile __ECCP2DELbits_t __at (0xF67) ECCP2DELbits;
+
+__sfr __at (0xF68) ECCP2AS;
+volatile __ECCP2ASbits_t __at (0xF68) ECCP2ASbits;
+
+__sfr __at (0xF69) ECCP3DEL;
+volatile __ECCP3DELbits_t __at (0xF69) ECCP3DELbits;
+
+__sfr __at (0xF6A) ECCP3AS;
+volatile __ECCP3ASbits_t __at (0xF6A) ECCP3ASbits;
+
+__sfr __at (0xF6B) RCSTA2;
+volatile __RCSTA2bits_t __at (0xF6B) RCSTA2bits;
+
+__sfr __at (0xF6C) TXSTA2;
+volatile __TXSTA2bits_t __at (0xF6C) TXSTA2bits;
+
+__sfr __at (0xF6D) TXREG2;
+
+__sfr __at (0xF6E) RCREG2;
+
+__sfr __at (0xF6F) SPBRG2;
+
+__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) PR4;
+
+__sfr __at (0xF78) TMR4;
+
+__sfr __at (0xF79) ECCP1DEL;
+volatile __ECCP1DELbits_t __at (0xF79) ECCP1DELbits;
+
+__sfr __at (0xF7A) ERDPT;
+
+__sfr __at (0xF7A) ERDPTL;
+
+__sfr __at (0xF7B) ERDPTH;
+
+__sfr __at (0xF7C) BAUDCON2;
+volatile __BAUDCON2bits_t __at (0xF7C) BAUDCON2bits;
+
+__sfr __at (0xF7C) BAUDCTL2;
+volatile __BAUDCTL2bits_t __at (0xF7C) BAUDCTL2bits;
+
+__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 (0xF7E) BAUDCTL;
+volatile __BAUDCTLbits_t __at (0xF7E) BAUDCTLbits;
+
+__sfr __at (0xF7E) BAUDCTL1;
+volatile __BAUDCTL1bits_t __at (0xF7E) BAUDCTL1bits;
+
+__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) MEMCON;
+volatile __MEMCONbits_t __at (0xF9C) MEMCONbits;
+
+__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 (0xFAB) RCSTA;
+volatile __RCSTAbits_t __at (0xFAB) RCSTAbits;
+
+__sfr __at (0xFAB) RCSTA1;
+volatile __RCSTA1bits_t __at (0xFAB) RCSTA1bits;
+
+__sfr __at (0xFAC) TXSTA;
+volatile __TXSTAbits_t __at (0xFAC) TXSTAbits;
+
+__sfr __at (0xFAC) TXSTA1;
+volatile __TXSTA1bits_t __at (0xFAC) TXSTA1bits;
+
+__sfr __at (0xFAD) TXREG;
+
+__sfr __at (0xFAD) TXREG1;
+
+__sfr __at (0xFAE) RCREG;
+
+__sfr __at (0xFAE) RCREG1;
+
+__sfr __at (0xFAF) SPBRG;
+
+__sfr __at (0xFAF) SPBRG1;
+
+__sfr __at (0xFB0) PSPCON;
+volatile __PSPCONbits_t __at (0xFB0) PSPCONbits;
+
+__sfr __at (0xFB1) T3CON;
+volatile __T3CONbits_t __at (0xFB1) T3CONbits;
+
+__sfr __at (0xFB2) TMR3L;
+
+__sfr __at (0xFB3) TMR3H;
+
+__sfr __at (0xFB4) CMCON;
+volatile __CMCONbits_t __at (0xFB4) CMCONbits;
+
+__sfr __at (0xFB5) CVRCON;
+volatile __CVRCONbits_t __at (0xFB5) CVRCONbits;
+
+__sfr __at (0xFB6) ECCP1AS;
+volatile __ECCP1ASbits_t __at (0xFB6) ECCP1ASbits;
+
+__sfr __at (0xFB7) CCP3CON;
+volatile __CCP3CONbits_t __at (0xFB7) CCP3CONbits;
+
+__sfr __at (0xFB7) ECCP3CON;
+volatile __ECCP3CONbits_t __at (0xFB7) ECCP3CONbits;
+
+__sfr __at (0xFB8) CCPR3;
+
+__sfr __at (0xFB8) CCPR3L;
+
+__sfr __at (0xFB9) CCPR3H;
+
+__sfr __at (0xFBA) CCP2CON;
+volatile __CCP2CONbits_t __at (0xFBA) CCP2CONbits;
+
+__sfr __at (0xFBA) ECCP2CON;
+volatile __ECCP2CONbits_t __at (0xFBA) ECCP2CONbits;
+
+__sfr __at (0xFBB) CCPR2;
+
+__sfr __at (0xFBB) CCPR2L;
+
+__sfr __at (0xFBC) CCPR2H;
+
+__sfr __at (0xFBD) CCP1CON;
+volatile __CCP1CONbits_t __at (0xFBD) CCP1CONbits;
+
+__sfr __at (0xFBD) ECCP1CON;
+volatile __ECCP1CONbits_t __at (0xFBD) ECCP1CONbits;
+
+__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) 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) 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) 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) ECON1;
+volatile __ECON1bits_t __at (0xFD2) ECON1bits;
+
+__sfr __at (0xFD3) OSCCON;
+volatile __OSCCONbits_t __at (0xFD3) OSCCONbits;
+
+__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/pic18f96j65.c b/device/lib/pic16/libdev/pic18f96j65.c
new file mode 100644 (file)
index 0000000..fa1bba1
--- /dev/null
@@ -0,0 +1,6 @@
+/*
+ * pic18f96j65.c - device specific definitions
+ */
+
+#include "pic18f96j60.c"
+
diff --git a/device/lib/pic16/libdev/pic18f97j60.c b/device/lib/pic16/libdev/pic18f97j60.c
new file mode 100644 (file)
index 0000000..af7e578
--- /dev/null
@@ -0,0 +1,6 @@
+/*
+ * pic18f97j60.c - device specific definitions
+ */
+
+#include "pic18f96j60.c"
+
index cb9c5b167ff099996326d7f2a53fcea4234e7b10..a0d40dc33b73df50527391f49e84971471bcc748 100644 (file)
@@ -10,7 +10,7 @@ char adc_busy(void) __naked
 #else
   __asm
     movlw       0x00
-#if defined(__SDCC_ADC_STYLE2455)
+#if defined(__SDCC_ADC_STYLE2455) || defined(__SDCC_ADC_STYLE97J60)
     btfsc       _ADCON0bits, 0
 #else /* all other devices */
     btfsc       _ADCON0bits, 2
index fbfad8dc608f4d494437d57a475e8bbfce448dc8..ab92131dd61f5e438af0933d04041589358df2be 100644 (file)
@@ -43,14 +43,14 @@ void adc_open(unsigned char channel, unsigned char fosc, unsigned char pcfg, uns
   ADCON1 = 0;
 
   /* setup channel */
-#if defined(__SDCC_ADC_STYLE2455)
+#if defined(__SDCC_ADC_STYLE2455) || defined(__SDCC_ADC_STYLE97J60)
   ADCON0 |= (channel & 0x07) << 2;
 #else /* all other devices */
   ADCON0 |= (channel & 0x07) << 3;
 #endif
 
   /* setup fosc */
-#if defined(__SDCC_ADC_STYLE2455)
+#if defined(__SDCC_ADC_STYLE2455) || defined(__SDCC_ADC_STYLE97J60)
   ADCON2 |= (fosc & 0x03);
 #else /* all other devices */
   ADCON0 |= (fosc & 0x03) << 6;
@@ -58,13 +58,13 @@ void adc_open(unsigned char channel, unsigned char fosc, unsigned char pcfg, uns
 #endif
 
   /* setup reference and pins */
-#if defined(__SDCC_ADC_STYLE2455)
+#if defined(__SDCC_ADC_STYLE2455) || defined(__SDCC_ADC_STYLE97J60)
   ADCON1 |= pcfg & 0x3f;
 #else /* all other devices */
   ADCON1 |= pcfg & 0x0f;
 #endif
 
-#if defined(__SDCC_ADC_STYLE2455)
+#if defined(__SDCC_ADC_STYLE2455) || defined(__SDCC_ADC_STYLE97J60)
   ADCON2 |= (config & ADC_FRM_RJUST);
 #else /* all other devices */
   ADCON1 |= (config & ADC_FRM_RJUST);
index 917bcdf5aec749ffc465a0fa6f9d9b0f68aeed4f..5a98cb0c920dd627521df0b00fa251a60ab550f9 100644 (file)
@@ -33,7 +33,7 @@
 void adc_setchannel(unsigned char channel) __naked
 {
 #if 0
-#if defined(__SDCC_ADC_STYLE2455)
+#if defined(__SDCC_ADC_STYLE2455) || defined(__SDCC_ADC_STYLE97J60)
   ADCON0 &= ~(0xf << 2);
   ADCON0 |= channel << 2;
 #else /* all other devices */
@@ -44,7 +44,7 @@ void adc_setchannel(unsigned char channel) __naked
   (void)channel;
 
   __asm
-#if defined(__SDCC_ADC_STYLE2455)
+#if defined(__SDCC_ADC_STYLE2455) || defined(__SDCC_ADC_STYLE97J60)
     movlw       0xc3
 #else /* all other devices */
     movlw       0xc7
@@ -53,7 +53,7 @@ void adc_setchannel(unsigned char channel) __naked
     
     movlw       0x01
     movf        _PLUSW1, w
-#if defined(__SDCC_ADC_STYLE2455)
+#if defined(__SDCC_ADC_STYLE2455) || defined(__SDCC_ADC_STYLE97J60)
 #else /* all other devices */
     rlcf        _WREG, w
 #endif
index bbb486e6ec9dfb6e46b9c3909d3a4376e41e9f51..d891a44d357412ca5aeab6b578af27f3b0b872cb 100644 (file)
@@ -10,10 +10,13 @@ void i2c_open(unsigned char mode, unsigned char slew, unsigned char addr_brd)
   SSPCON2 = 0;
   SSPCON1 |= mode;
   SSPSTAT |= slew;
-  
-  
+
+
 #if defined(pic18f2455) || defined (pic18f2550) \
-    || defined(pic18f4455) || defined (pic18f4550)
+    || defined(pic18f4455) || defined (pic18f4550) \
+    || defined(pic18f66j60) || defined(pic18f66j65) || defined(pic18f67j60) \
+    || defined(pic18f86j60) || defined(pic18f86j65) || defined(pic18f87j60) \
+    || defined(pic18f96j60) || defined(pic18f96j65) || defined(pic18f97j60)
 
   TRISBbits.TRISB1 = 1;
   TRISBbits.TRISB0 = 1;
index 40dcbec20d04c53ee9c00ea92a5e6d1aa4cb03cd..4fce9a979e53d86d70ccde412a276985ba8fffc5 100644 (file)
@@ -38,7 +38,7 @@ void usart_open(unsigned char config, unsigned int spbrg) __wparam
 {
   TXSTA = 0;           // Reset USART registers to POR state
   RCSTA = 0;
+
   if(config&0x01)TXSTAbits.SYNC = 1;
 
   if(config&0x02) {
@@ -55,17 +55,42 @@ void usart_open(unsigned char config, unsigned int spbrg) __wparam
   else TXSTAbits.BRGH = 0;
 
   /* TX interrupts */
+#if defined(pic18f66j60) || defined(pic18f66j65) || \
+       defined(pic18f67j60) || defined(pic18f86j60) || \
+       defined(pic18f86j65) || defined(pic18f87j60) || \
+       defined(pic18f96j60) || defined(pic18f96j65) || \
+       defined(pic18f97j60)
+
+  PIR1bits.TXIF_PIR1 = 0;
+
+#else   /* all other devices */
+
   PIR1bits.TXIF = 0;
 
+#endif
+
   if(config&0x40)PIE1bits.RCIE = 1;
   else PIE1bits.RCIE = 0;
 
   /* RX interrupts */
   PIR1bits.RCIF = 0;
 
+#if defined(pic18f66j60) || defined(pic18f66j65) || \
+       defined(pic18f67j60) || defined(pic18f86j60) || \
+       defined(pic18f86j65) || defined(pic18f87j60) || \
+       defined(pic18f96j60) || defined(pic18f96j65) || \
+       defined(pic18f97j60)
+
+  if(config&0x80)PIE1bits.TXIE_PIE1 = 1;
+  else PIE1bits.TXIE_PIE1 = 0;
+
+#else   /* all other devices */
+
   if(config&0x80)PIE1bits.TXIE = 1;
   else PIE1bits.TXIE = 0;
 
+#endif
+
   SPBRG = (char)spbrg;
 
   TXSTAbits.TXEN = 1;
index 43906870c3a98e87dab427cd5b1405705958a665..dfb3ad4e10e4a303bf7d9e69077dbc407611f01a 100644 (file)
 6585
 6620
 6680
+66j60
+66j65
 6720
+67j60
 
 8520
 8585
 8620
 8680
+86j60
+86j65
 8720
+87j60
 
+96j60
+96j65
+97j60