From e87e91ad968cd9944a6710554cd96ca8cf586c89 Mon Sep 17 00:00:00 2001 From: tecodev Date: Sat, 21 Jun 2008 21:36:29 +0000 Subject: [PATCH] * 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 git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@5195 4a8a32a2-be11-0410-ad9d-d568d2c75423 --- ChangeLog | 32 + device/include/pic16/adc.h | 35 +- device/include/pic16/pic16devices.txt | 59 + device/include/pic16/pic18f66j60.h | 2696 +++++++++++++++++++++ device/include/pic16/pic18f66j65.h | 6 + device/include/pic16/pic18f67j60.h | 6 + device/include/pic16/pic18f86j60.h | 2964 +++++++++++++++++++++++ device/include/pic16/pic18f86j65.h | 6 + device/include/pic16/pic18f87j60.h | 6 + device/include/pic16/pic18f96j60.h | 3203 +++++++++++++++++++++++++ device/include/pic16/pic18f96j65.h | 6 + device/include/pic16/pic18f97j60.h | 6 + device/include/pic16/pic18fregs.h | 28 + device/lib/pic16/libdev/pic18f66j60.c | 661 +++++ device/lib/pic16/libdev/pic18f66j65.c | 6 + device/lib/pic16/libdev/pic18f67j60.c | 6 + device/lib/pic16/libdev/pic18f86j60.c | 705 ++++++ device/lib/pic16/libdev/pic18f86j65.c | 6 + device/lib/pic16/libdev/pic18f87j60.c | 6 + device/lib/pic16/libdev/pic18f96j60.c | 724 ++++++ device/lib/pic16/libdev/pic18f96j65.c | 6 + device/lib/pic16/libdev/pic18f97j60.c | 6 + device/lib/pic16/libio/adc/adcbusy.c | 2 +- device/lib/pic16/libio/adc/adcopen.c | 8 +- device/lib/pic16/libio/adc/adcsetch.c | 6 +- device/lib/pic16/libio/i2c/i2copen.c | 9 +- device/lib/pic16/libio/usart/uopen.c | 27 +- device/lib/pic16/pics.all | 9 + 28 files changed, 11224 insertions(+), 16 deletions(-) create mode 100644 device/include/pic16/pic18f66j60.h create mode 100644 device/include/pic16/pic18f66j65.h create mode 100644 device/include/pic16/pic18f67j60.h create mode 100644 device/include/pic16/pic18f86j60.h create mode 100644 device/include/pic16/pic18f86j65.h create mode 100644 device/include/pic16/pic18f87j60.h create mode 100644 device/include/pic16/pic18f96j60.h create mode 100644 device/include/pic16/pic18f96j65.h create mode 100644 device/include/pic16/pic18f97j60.h create mode 100644 device/lib/pic16/libdev/pic18f66j60.c create mode 100644 device/lib/pic16/libdev/pic18f66j65.c create mode 100644 device/lib/pic16/libdev/pic18f67j60.c create mode 100644 device/lib/pic16/libdev/pic18f86j60.c create mode 100644 device/lib/pic16/libdev/pic18f86j65.c create mode 100644 device/lib/pic16/libdev/pic18f87j60.c create mode 100644 device/lib/pic16/libdev/pic18f96j60.c create mode 100644 device/lib/pic16/libdev/pic18f96j65.c create mode 100644 device/lib/pic16/libdev/pic18f97j60.c diff --git a/ChangeLog b/ChangeLog index 28372e8f..c215dee1 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,35 @@ +2008-06-21 Raphael Neider + + * 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 * sim/ucsim/cmd.src/info.cc, sim/ucsim/cmd.src/bp.cc, diff --git a/device/include/pic16/adc.h b/device/include/pic16/adc.h index 0d77eaa5..32303276 100644 --- a/device/include/pic16/adc.h +++ b/device/include/pic16/adc.h @@ -72,6 +72,13 @@ #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 @@ -101,6 +107,11 @@ #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 */ @@ -116,11 +127,27 @@ /* 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 diff --git a/device/include/pic16/pic16devices.txt b/device/include/pic16/pic16devices.txt index cb08acfd..fdb4dd6d 100644 --- a/device/include/pic16/pic16devices.txt +++ b/device/include/pic16/pic16devices.txt @@ -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 index 00000000..c2652525 --- /dev/null +++ b/device/include/pic16/pic18f66j60.h @@ -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 + * + * It has been automatically generated by inc2h-pic16.pl, + * (c) 2007 by Raphael Neider + */ + +#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 index 00000000..a33a12a4 --- /dev/null +++ b/device/include/pic16/pic18f66j65.h @@ -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 index 00000000..fbc9a054 --- /dev/null +++ b/device/include/pic16/pic18f67j60.h @@ -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 index 00000000..e4c2923a --- /dev/null +++ b/device/include/pic16/pic18f86j60.h @@ -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 + * + * It has been automatically generated by inc2h-pic16.pl, + * (c) 2007 by Raphael Neider + */ + +#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 index 00000000..f6e49fac --- /dev/null +++ b/device/include/pic16/pic18f86j65.h @@ -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 index 00000000..78184eb6 --- /dev/null +++ b/device/include/pic16/pic18f87j60.h @@ -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 index 00000000..f942ddab --- /dev/null +++ b/device/include/pic16/pic18f96j60.h @@ -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 + * + * It has been automatically generated by inc2h-pic16.pl, + * (c) 2007 by Raphael Neider + */ + +#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 index 00000000..6e6755f2 --- /dev/null +++ b/device/include/pic16/pic18f96j65.h @@ -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 index 00000000..c02e6a7e --- /dev/null +++ b/device/include/pic16/pic18f97j60.h @@ -0,0 +1,6 @@ +/* + * pic18f97j60.h - PIC18F97J60 Device Library Header + */ + +#include "pic18f96j60.h" + diff --git a/device/include/pic16/pic18fregs.h b/device/include/pic16/pic18fregs.h index 12f9149f..189365aa 100644 --- a/device/include/pic16/pic18fregs.h +++ b/device/include/pic16/pic18fregs.h @@ -189,9 +189,18 @@ #elif defined(pic18f6680) # include +#elif defined(pic18f66j60) +# include + +#elif defined(pic18f66j65) +# include + #elif defined(pic18f6720) # include +#elif defined(pic18f67j60) +# include + #elif defined(pic18f8520) # include @@ -204,9 +213,28 @@ #elif defined(pic18f8680) # include +#elif defined(pic18f86j60) +# include + +#elif defined(pic18f86j65) +# include + #elif defined(pic18f8720) # include +#elif defined(pic18f87j60) +# include + +#elif defined(pic18f96j60) +# include + +#elif defined(pic18f96j65) +# include + +#elif defined(pic18f97j60) +# include + + #else # error Unsupported processor diff --git a/device/lib/pic16/libdev/pic18f66j60.c b/device/lib/pic16/libdev/pic18f66j60.c new file mode 100644 index 00000000..9f9f0c52 --- /dev/null +++ b/device/lib/pic16/libdev/pic18f66j60.c @@ -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 + * + * It has been automatically generated by inc2h-pic16.pl, + * (c) 2007 by Raphael Neider + */ + +#include + + +__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 index 00000000..8e05a020 --- /dev/null +++ b/device/lib/pic16/libdev/pic18f66j65.c @@ -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 index 00000000..5fe635d0 --- /dev/null +++ b/device/lib/pic16/libdev/pic18f67j60.c @@ -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 index 00000000..4feea2e7 --- /dev/null +++ b/device/lib/pic16/libdev/pic18f86j60.c @@ -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 + * + * It has been automatically generated by inc2h-pic16.pl, + * (c) 2007 by Raphael Neider + */ + +#include + + +__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 index 00000000..c815a553 --- /dev/null +++ b/device/lib/pic16/libdev/pic18f86j65.c @@ -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 index 00000000..966e4c08 --- /dev/null +++ b/device/lib/pic16/libdev/pic18f87j60.c @@ -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 index 00000000..685a2a60 --- /dev/null +++ b/device/lib/pic16/libdev/pic18f96j60.c @@ -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 + * + * It has been automatically generated by inc2h-pic16.pl, + * (c) 2007 by Raphael Neider + */ + +#include + + +__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 index 00000000..fa1bba15 --- /dev/null +++ b/device/lib/pic16/libdev/pic18f96j65.c @@ -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 index 00000000..af7e5786 --- /dev/null +++ b/device/lib/pic16/libdev/pic18f97j60.c @@ -0,0 +1,6 @@ +/* + * pic18f97j60.c - device specific definitions + */ + +#include "pic18f96j60.c" + diff --git a/device/lib/pic16/libio/adc/adcbusy.c b/device/lib/pic16/libio/adc/adcbusy.c index cb9c5b16..a0d40dc3 100644 --- a/device/lib/pic16/libio/adc/adcbusy.c +++ b/device/lib/pic16/libio/adc/adcbusy.c @@ -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 diff --git a/device/lib/pic16/libio/adc/adcopen.c b/device/lib/pic16/libio/adc/adcopen.c index fbfad8dc..ab92131d 100644 --- a/device/lib/pic16/libio/adc/adcopen.c +++ b/device/lib/pic16/libio/adc/adcopen.c @@ -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); diff --git a/device/lib/pic16/libio/adc/adcsetch.c b/device/lib/pic16/libio/adc/adcsetch.c index 917bcdf5..5a98cb0c 100644 --- a/device/lib/pic16/libio/adc/adcsetch.c +++ b/device/lib/pic16/libio/adc/adcsetch.c @@ -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 diff --git a/device/lib/pic16/libio/i2c/i2copen.c b/device/lib/pic16/libio/i2c/i2copen.c index bbb486e6..d891a44d 100644 --- a/device/lib/pic16/libio/i2c/i2copen.c +++ b/device/lib/pic16/libio/i2c/i2copen.c @@ -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; diff --git a/device/lib/pic16/libio/usart/uopen.c b/device/lib/pic16/libio/usart/uopen.c index 40dcbec2..4fce9a97 100644 --- a/device/lib/pic16/libio/usart/uopen.c +++ b/device/lib/pic16/libio/usart/uopen.c @@ -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; diff --git a/device/lib/pic16/pics.all b/device/lib/pic16/pics.all index 43906870..dfb3ad4e 100644 --- a/device/lib/pic16/pics.all +++ b/device/lib/pic16/pics.all @@ -61,11 +61,20 @@ 6585 6620 6680 +66j60 +66j65 6720 +67j60 8520 8585 8620 8680 +86j60 +86j65 8720 +87j60 +96j60 +96j65 +97j60 -- 2.47.2