#ifndef PORT_H
#define	PORT_H

#include <xc.h>

typedef struct
{   
#if defined(ANSELA)
    volatile unsigned int ANSEL;
    unsigned : 32; //CLR
    unsigned : 32; //SET
    unsigned : 32; //INV
#endif

#if defined(TRISA)
    volatile unsigned int TRIS;
    unsigned : 32; //CLR
    unsigned : 32; //SET
    unsigned : 32; //INV
#endif

#if defined(TRISA)   
    volatile unsigned int PORT;
    unsigned : 32; //CLR
    unsigned : 32; //SET
    unsigned : 32; //INV
#endif

#if defined(LATA)
    volatile unsigned int LAT;
    unsigned : 32; //CLR
    unsigned : 32; //SET
    unsigned : 32; //INV
#endif

#if defined(ODCA)
    volatile unsigned int ODC;
    unsigned : 32; //CLR
    unsigned : 32; //SET
    unsigned : 32; //INV
#endif

#if defined(CNPUA)
    volatile unsigned int CNPU;
    unsigned : 32; //CLR
    unsigned : 32; //SET
    unsigned : 32; //INV
#endif

#if defined(CNPDA)
    volatile unsigned int CNPD;
    unsigned : 32; //CLR
    unsigned : 32; //SET
    unsigned : 32; //INV
#endif

#if defined(CNCONA)
    volatile unsigned int CNCON;
    unsigned : 32; //CLR
    unsigned : 32; //SET
    unsigned : 32; //INV
#endif

#if defined(CNENA)
    volatile unsigned int CNEN;
    unsigned : 32; //CLR
    unsigned : 32; //SET
    unsigned : 32; //INV
#endif

#if defined(CNSTATA)
    volatile unsigned int CNSTAT;
    unsigned : 32; //CLR
    unsigned : 32; //SET
    unsigned : 32; //INV
#endif

#if defined(CNNEA)
    volatile unsigned int CNNE;
    unsigned : 32; //CLR
    unsigned : 32; //SET
    unsigned : 32; //INV
#endif

#if defined(CNFA)
    volatile unsigned int CNF;
    unsigned : 32; //CLR
    unsigned : 32; //SET
    unsigned : 32; //INV
#endif

#if defined(SRCON0A)    
    volatile unsigned int SRCON0;
    unsigned : 32; //CLR
    unsigned : 32; //SET
    unsigned : 32; //INV
#endif

#if defined(SRCON1A)    
    volatile unsigned int SRCON1;
    unsigned : 32; //CLR
    unsigned : 32; //SET
    unsigned : 32; //INV
#endif
} PORT_REG;


#if defined __cplusplus
#if defined __XC32__
class _IO
#define IO _IO
#else

class IO
#endif
{
public:

    IO(volatile unsigned int* portAddr, int mask) : addr(portAddr), mask(mask) { };

    __attribute__((always_inline)) IO& operator =(int value)
    {
        *(this->addr + 5 + value) = this->mask;
        return *this;
    }

    __attribute__((always_inline)) IO& operator =(IO& obj)
    {
        *(this->addr + 5 + this->LAT(obj)) = this->mask;
        return *this;
    }

    __attribute__((always_inline)) operator int ()
    {
        return !!(*this->addr & this->mask);
    }

    __attribute__((always_inline)) static int ANSEL(IO& pin)
    {
        return !!(*(pin.addr - 8) & pin.mask);
    }

    __attribute__((always_inline)) static void ANSEL(IO& pin, int value)
    {
        *(pin.addr - 7 + value) = pin.mask;
    }

    __attribute__((always_inline)) static int TRIS(IO& pin)
    {
        return (*(pin.addr - 4) & pin.mask);
    }

    __attribute__((always_inline)) static void TRIS(IO& pin, int value)
    {
        *(pin.addr - 3 + value) = pin.mask;
    }

    __attribute__((always_inline)) static int PORT(IO& pin)
    {
        return pin;
    }

    __attribute__((always_inline)) static int LAT(IO& pin)
    {
        return !!(*(pin.addr + 4) & pin.mask);
    }

    __attribute__((always_inline)) static void LAT(IO& pin, int value)
    {
        *(pin.addr + 5 + value) = pin.mask;
    }

    __attribute__((always_inline)) static int ODC(IO& pin)
    {
        return !!(*(pin.addr + 8) & pin.mask);
    }

    __attribute__((always_inline)) static void ODC(IO& pin, int value)
    {
        *(pin.addr + 9 + value) = pin.mask;
    }

    __attribute__((always_inline)) static int CNPU(IO& pin)
    {
        return !!(*(pin.addr + 12) & pin.mask);
    }

    __attribute__((always_inline)) static void CNPU(IO& pin, int value)
    {
        *(pin.addr + 13 + value) = pin.mask;
    }

    __attribute__((always_inline)) static int CNPD(IO& pin)
    {
        return !!(*(pin.addr + 16) & pin.mask);
    }

    __attribute__((always_inline)) static void CNPD(IO& pin, int value)
    {
        *(pin.addr + 17 + value) = pin.mask;
    }

    __attribute__((always_inline)) static int CNEN(IO& pin)
    {
        return !!(*(pin.addr + 24) & pin.mask);
    }

    __attribute__((always_inline)) static void CNEN(IO& pin, int value)
    {
        *(pin.addr + 25 + value) = pin.mask;
    }

    __attribute__((always_inline)) static int CNSTAT(IO& pin)
    {
        return !!(*(pin.addr + 28) & pin.mask);
    }

    __attribute__((always_inline)) static void CNSTAT(IO& pin, int value)
    {
        *(pin.addr + 29 + value) = pin.mask;
    }

    __attribute__((always_inline)) static int CNNE(IO& pin)
    {
        return !!(*(pin.addr + 32) & pin.mask);
    }

    __attribute__((always_inline)) static void CNNE(IO& pin, int value)
    {
        *(pin.addr + 33 + value) = pin.mask;
    }

    __attribute__((always_inline)) static int CNF(IO& pin)
    {
        return !!(*(pin.addr + 36) & pin.mask);
    }

    __attribute__((always_inline)) static void CNF(IO& pin, int value)
    {
        *(pin.addr + 37 + value) = pin.mask;
    }
private:
    volatile unsigned int* const addr;
    const unsigned int mask;
};
#if defined __XC32__
#undef IO
typedef _IO IO;
#endif
#endif

#define OVERRIDE

#if defined (_PORTA_BASE_ADDRESS)
#if defined (OVERRIDE)
#undef PORTA
#define PORTA ((PORT_REG*)(_PORTA_BASE_ADDRESS - 0x20))
#else
#define PORT_A ((PORT_REG*)(_PORTA_BASE_ADDRESS - 0x20))
#endif
#endif
#if defined (_PORTB_BASE_ADDRESS)
#if defined (OVERRIDE)
#undef PORTB
#define PORTB ((PORT_REG*)(_PORTB_BASE_ADDRESS - 0x20))
#else
#define PORT_B ((PORT_REG*)(_PORTB_BASE_ADDRESS - 0x20))
#endif
#endif
#if defined (_PORTC_BASE_ADDRESS)
#if defined (OVERRIDE)
#undef PORTC
#define PORTC ((PORT_REG*)(_PORTC_BASE_ADDRESS - 0x20))
#else
#define PORT_C ((PORT_REG*)(_PORTC_BASE_ADDRESS - 0x20))
#endif
#endif
#if defined (_PORTD_BASE_ADDRESS)
#if defined (OVERRIDE)
#undef PORTD
#define PORTD ((PORT_REG*)(_PORTD_BASE_ADDRESS - 0x20))
#else
#define PORT_D ((PORT_REG*)(_PORTD_BASE_ADDRESS - 0x20))
#endif
#endif
#if defined (_PORTE_BASE_ADDRESS)
#if defined (OVERRIDE)
#undef PORTE
#define PORTE ((PORT_REG*)(_PORTE_BASE_ADDRESS - 0x20))
#else
#define PORT_E ((PORT_REG*)(_PORTE_BASE_ADDRESS - 0x20))
#endif
#endif
#if defined (_PORTF_BASE_ADDRESS)
#if defined (OVERRIDE)
#undef PORTF
#define PORTF ((PORT_REG*)(_PORTF_BASE_ADDRESS - 0x20))
#else
#define PORT_F ((PORT_REG*)(_PORTF_BASE_ADDRESS - 0x20))
#endif
#endif
#if defined (_PORTG_BASE_ADDRESS)
#if defined (OVERRIDE)
#undef PORTG
#define PORTG ((PORT_REG*)(_PORTG_BASE_ADDRESS - 0x20))
#else
#define PORT_G ((PORT_REG*)(_PORTG_BASE_ADDRESS - 0x20))
#endif
#endif
#if defined (_PORTH_BASE_ADDRESS)
#if defined (OVERRIDE)
#undef PORTH
#define PORTH ((PORT_REG*)(_PORTH_BASE_ADDRESS - 0x20))
#else
#define PORT_H ((PORT_REG*)(_PORTH_BASE_ADDRESS - 0x20))
#endif
#endif
#if defined (_PORTI_BASE_ADDRESS)
#if defined (OVERRIDE)
#undef PORTI
#define PORTI ((PORT_REG*)(_PORTI_BASE_ADDRESS - 0x20))
#else
#define PORT_I ((PORT_REG*)(_PORTI_BASE_ADDRESS - 0x20))
#endif
#endif
#if defined (_PORTJ_BASE_ADDRESS)
#if defined (OVERRIDE)
#undef PORTJ
#define PORTJ ((PORT_REG*)(_PORTJ_BASE_ADDRESS - 0x20))
#else
#define PORT_J ((PORT_REG*)(_PORTJ_BASE_ADDRESS - 0x20))
#endif
#endif
#if defined (_PORTK_BASE_ADDRESS)
#if defined (OVERRIDE)
#undef PORTK
#define PORTK ((PORT_REG*)(_PORTK_BASE_ADDRESS - 0x20))
#else
#define PORT_K ((PORT_REG*)(_PORTK_BASE_ADDRESS - 0x20))
#endif
#endif

PORT_REG * const PORT[] ={
#if defined _PORTA_BASE_ADDRESS
    ((PORT_REG*) (_PORTA_BASE_ADDRESS - 0x20)),
#endif
#if defined _PORTB_BASE_ADDRESS
    ((PORT_REG*) (_PORTB_BASE_ADDRESS - 0x20)),
#endif
#if defined _PORTC_BASE_ADDRESS
    ((PORT_REG*) (_PORTC_BASE_ADDRESS - 0x20)),
#endif
#if defined _PORTD_BASE_ADDRESS
    ((PORT_REG*) (_PORTD_BASE_ADDRESS - 0x20)),
#endif
#if defined _PORTE_BASE_ADDRESS
    ((PORT_REG*) (_PORTE_BASE_ADDRESS - 0x20)),
#endif
#if defined _PORTF_BASE_ADDRESS
    ((PORT_REG*) (_PORTF_BASE_ADDRESS - 0x20)),
#endif
#if defined _PORTG_BASE_ADDRESS
    ((PORT_REG*) (_PORTG_BASE_ADDRESS - 0x20)),
#endif
#if defined _PORTH_BASE_ADDRESS
    ((PORT_REG*) (_PORTH_BASE_ADDRESS - 0x20)),
#endif
#if defined _PORTI_BASE_ADDRESS
    ((PORT_REG*) (_PORTI_BASE_ADDRESS - 0x20)),
#endif
#if defined _PORTJ_BASE_ADDRESS
    ((PORT_REG*) (_PORTJ_BASE_ADDRESS - 0x20)),
#endif
#if defined _PORTK_BASE_ADDRESS
    ((PORT_REG*) (_PORTK_BASE_ADDRESS - 0x20)),
#endif
};

typedef enum
{
#if defined _PORTA
    RA,
#endif
#if defined _PORTB
    RB,
#endif
#if defined _PORTC
    RC,
#endif
#if defined _PORTD
    RD,
#endif
#if defined _PORTE
    RE,
#endif
#if defined _PORTF
    RF,
#endif
#if defined _PORTG
    RG,
#endif
#if defined _PORTH
    RH,
#endif
#if defined _PORTI
    RI,
#endif
#if defined _PORTJ
    RJ,
#endif
#if defined _PORTK
    RK,
#endif
} PORT_Name;

#if defined __cplusplus
#if defined (_PORTA_BASE_ADDRESS)
#if defined(_PORTA_RA0_POSITION)
extern IO RA0;
#endif
#if defined(_PORTA_RA1_POSITION)
extern IO RA1;
#endif
#if defined(_PORTA_RA2_POSITION)
extern IO RA2;
#endif
#if defined(_PORTA_RA3_POSITION)
extern IO RA3;
#endif
#if defined(_PORTA_RA4_POSITION)
extern IO RA4;
#endif
#if defined(_PORTA_RA5_POSITION)
extern IO RA5;
#endif
#if defined(_PORTA_RA6_POSITION)
extern IO RA6;
#endif
#if defined(_PORTA_RA7_POSITION)
extern IO RA7;
#endif
#if defined(_PORTA_RA8_POSITION)
extern IO RA8;
#endif
#if defined(_PORTA_RA9_POSITION)
extern IO RA9;
#endif
#if defined(_PORTA_RA10_POSITION)
extern IO RA10;
#endif
#if defined(_PORTA_RA11_POSITION)
extern IO RA11;
#endif
#if defined(_PORTA_RA12_POSITION)
extern IO RA12;
#endif
#if defined(_PORTA_RA13_POSITION)
extern IO RA13;
#endif
#if defined(_PORTA_RA14_POSITION)
extern IO RA14;
#endif
#if defined(_PORTA_RA15_POSITION)
extern IO RA15;
#endif
#endif
#if defined (_PORTB_BASE_ADDRESS)
#if defined(_PORTB_RB0_POSITION)
extern IO RB0;
#endif
#if defined(_PORTB_RB1_POSITION)
extern IO RB1;
#endif
#if defined(_PORTB_RB2_POSITION)
extern IO RB2;
#endif
#if defined(_PORTB_RB3_POSITION)
extern IO RB3;
#endif
#if defined(_PORTB_RB4_POSITION)
extern IO RB4;
#endif
#if defined(_PORTB_RB5_POSITION)
extern IO RB5;
#endif
#if defined(_PORTB_RB6_POSITION)
extern IO RB6;
#endif
#if defined(_PORTB_RB7_POSITION)
extern IO RB7;
#endif
#if defined(_PORTB_RB8_POSITION)
extern IO RB8;
#endif
#if defined(_PORTB_RB9_POSITION)
extern IO RB9;
#endif
#if defined(_PORTB_RB10_POSITION)
extern IO RB10;
#endif
#if defined(_PORTB_RB11_POSITION)
extern IO RB11;
#endif
#if defined(_PORTB_RB12_POSITION)
extern IO RB12;
#endif
#if defined(_PORTB_RB13_POSITION)
extern IO RB13;
#endif
#if defined(_PORTB_RB14_POSITION)
extern IO RB14;
#endif
#if defined(_PORTB_RB15_POSITION)
extern IO RB15;
#endif
#endif
#if defined (_PORTC_BASE_ADDRESS)
#if defined(_PORTC_RC0_POSITION)
extern IO RC0;
#endif
#if defined(_PORTC_RC1_POSITION)
extern IO RC1;
#endif
#if defined(_PORTC_RC2_POSITION)
extern IO RC2;
#endif
#if defined(_PORTC_RC3_POSITION)
extern IO RC3;
#endif
#if defined(_PORTC_RC4_POSITION)
extern IO RC4;
#endif
#if defined(_PORTC_RC5_POSITION)
extern IO RC5;
#endif
#if defined(_PORTC_RC6_POSITION)
extern IO RC6;
#endif
#if defined(_PORTC_RC7_POSITION)
extern IO RC7;
#endif
#if defined(_PORTC_RC8_POSITION)
extern IO RC8;
#endif
#if defined(_PORTC_RC9_POSITION)
extern IO RC9;
#endif
#if defined(_PORTC_RC10_POSITION)
extern IO RC10;
#endif
#if defined(_PORTC_RC11_POSITION)
extern IO RC11;
#endif
#if defined(_PORTC_RC12_POSITION)
extern IO RC12;
#endif
#if defined(_PORTC_RC13_POSITION)
extern IO RC13;
#endif
#if defined(_PORTC_RC14_POSITION)
extern IO RC14;
#endif
#if defined(_PORTC_RC15_POSITION)
extern IO RC15;
#endif
#endif
#if defined (_PORTD_BASE_ADDRESS)
#if defined(_PORTD_RD0_POSITION)
extern IO RD0;
#endif
#if defined(_PORTD_RD1_POSITION)
extern IO RD1;
#endif
#if defined(_PORTD_RD2_POSITION)
extern IO RD2;
#endif
#if defined(_PORTD_RD3_POSITION)
extern IO RD3;
#endif
#if defined(_PORTD_RD4_POSITION)
extern IO RD4;
#endif
#if defined(_PORTD_RD5_POSITION)
extern IO RD5;
#endif
#if defined(_PORTD_RD6_POSITION)
extern IO RD6;
#endif
#if defined(_PORTD_RD7_POSITION)
extern IO RD7;
#endif
#if defined(_PORTD_RD8_POSITION)
extern IO RD8;
#endif
#if defined(_PORTD_RD9_POSITION)
extern IO RD9;
#endif
#if defined(_PORTD_RD10_POSITION)
extern IO RD10;
#endif
#if defined(_PORTD_RD11_POSITION)
extern IO RD11;
#endif
#if defined(_PORTD_RD12_POSITION)
extern IO RD12;
#endif
#if defined(_PORTD_RD13_POSITION)
extern IO RD13;
#endif
#if defined(_PORTD_RD14_POSITION)
extern IO RD14;
#endif
#if defined(_PORTD_RD15_POSITION)
extern IO RD15;
#endif
#endif
#if defined (_PORTE_BASE_ADDRESS)
#if defined(_PORTE_RE0_POSITION)
extern IO RE0;
#endif
#if defined(_PORTE_RE1_POSITION)
extern IO RE1;
#endif
#if defined(_PORTE_RE2_POSITION)
extern IO RE2;
#endif
#if defined(_PORTE_RE3_POSITION)
extern IO RE3;
#endif
#if defined(_PORTE_RE4_POSITION)
extern IO RE4;
#endif
#if defined(_PORTE_RE5_POSITION)
extern IO RE5;
#endif
#if defined(_PORTE_RE6_POSITION)
extern IO RE6;
#endif
#if defined(_PORTE_RE7_POSITION)
extern IO RE7;
#endif
#if defined(_PORTE_RE8_POSITION)
extern IO RE8;
#endif
#if defined(_PORTE_RE9_POSITION)
extern IO RE9;
#endif
#if defined(_PORTE_RE10_POSITION)
extern IO RE10;
#endif
#if defined(_PORTE_RE11_POSITION)
extern IO RE11;
#endif
#if defined(_PORTE_RE12_POSITION)
extern IO RE12;
#endif
#if defined(_PORTE_RE13_POSITION)
extern IO RE13;
#endif
#if defined(_PORTE_RE14_POSITION)
extern IO RE14;
#endif
#if defined(_PORTE_RE15_POSITION)
extern IO RE15;
#endif
#endif
#if defined (_PORTF_BASE_ADDRESS)
#if defined(_PORTF_RF0_POSITION)
extern IO RF0;
#endif
#if defined(_PORTF_RF1_POSITION)
extern IO RF1;
#endif
#if defined(_PORTF_RF2_POSITION)
extern IO RF2;
#endif
#if defined(_PORTF_RF3_POSITION)
extern IO RF3;
#endif
#if defined(_PORTF_RF4_POSITION)
extern IO RF4;
#endif
#if defined(_PORTF_RF5_POSITION)
extern IO RF5;
#endif
#if defined(_PORTF_RF6_POSITION)
extern IO RF6;
#endif
#if defined(_PORTF_RF7_POSITION)
extern IO RF7;
#endif
#if defined(_PORTF_RF8_POSITION)
extern IO RF8;
#endif
#if defined(_PORTF_RF9_POSITION)
extern IO RF9;
#endif
#if defined(_PORTF_RF10_POSITION)
extern IO RF10;
#endif
#if defined(_PORTF_RF11_POSITION)
extern IO RF11;
#endif
#if defined(_PORTF_RF12_POSITION)
extern IO RF12;
#endif
#if defined(_PORTF_RF13_POSITION)
extern IO RF13;
#endif
#if defined(_PORTF_RF14_POSITION)
extern IO RF14;
#endif
#if defined(_PORTF_RF15_POSITION)
extern IO RF15;
#endif
#endif
#if defined (_PORTG_BASE_ADDRESS)
#if defined(_PORTG_RG0_POSITION)
extern IO RG0;
#endif
#if defined(_PORTG_RG1_POSITION)
extern IO RG1;
#endif
#if defined(_PORTG_RG2_POSITION)
extern IO RG2;
#endif
#if defined(_PORTG_RG3_POSITION)
extern IO RG3;
#endif
#if defined(_PORTG_RG4_POSITION)
extern IO RG4;
#endif
#if defined(_PORTG_RG5_POSITION)
extern IO RG5;
#endif
#if defined(_PORTG_RG6_POSITION)
extern IO RG6;
#endif
#if defined(_PORTG_RG7_POSITION)
extern IO RG7;
#endif
#if defined(_PORTG_RG8_POSITION)
extern IO RG8;
#endif
#if defined(_PORTG_RG9_POSITION)
extern IO RG9;
#endif
#if defined(_PORTG_RG10_POSITION)
extern IO RG10;
#endif
#if defined(_PORTG_RG11_POSITION)
extern IO RG11;
#endif
#if defined(_PORTG_RG12_POSITION)
extern IO RG12;
#endif
#if defined(_PORTG_RG13_POSITION)
extern IO RG13;
#endif
#if defined(_PORTG_RG14_POSITION)
extern IO RG14;
#endif
#if defined(_PORTG_RG15_POSITION)
extern IO RG15;
#endif
#endif
#if defined (_PORTH_BASE_ADDRESS)
#if defined(_PORTH_RH0_POSITION)
extern IO RH0;
#endif
#if defined(_PORTH_RH1_POSITION)
extern IO RH1;
#endif
#if defined(_PORTH_RH2_POSITION)
extern IO RH2;
#endif
#if defined(_PORTH_RH3_POSITION)
extern IO RH3;
#endif
#if defined(_PORTH_RH4_POSITION)
extern IO RH4;
#endif
#if defined(_PORTH_RH5_POSITION)
extern IO RH5;
#endif
#if defined(_PORTH_RH6_POSITION)
extern IO RH6;
#endif
#if defined(_PORTH_RH7_POSITION)
extern IO RH7;
#endif
#if defined(_PORTH_RH8_POSITION)
extern IO RH8;
#endif
#if defined(_PORTH_RH9_POSITION)
extern IO RH9;
#endif
#if defined(_PORTH_RH10_POSITION)
extern IO RH10;
#endif
#if defined(_PORTH_RH11_POSITION)
extern IO RH11;
#endif
#if defined(_PORTH_RH12_POSITION)
extern IO RH12;
#endif
#if defined(_PORTH_RH13_POSITION)
extern IO RH13;
#endif
#if defined(_PORTH_RH14_POSITION)
extern IO RH14;
#endif
#if defined(_PORTH_RH15_POSITION)
extern IO RH15;
#endif
#endif
#if defined (_PORTI_BASE_ADDRESS)
#if defined(_PORTI_RI0_POSITION)
extern IO RI0;
#endif
#if defined(_PORTI_RI1_POSITION)
extern IO RI1;
#endif
#if defined(_PORTI_RI2_POSITION)
extern IO RI2;
#endif
#if defined(_PORTI_RI3_POSITION)
extern IO RI3;
#endif
#if defined(_PORTI_RI4_POSITION)
extern IO RI4;
#endif
#if defined(_PORTI_RI5_POSITION)
extern IO RI5;
#endif
#if defined(_PORTI_RI6_POSITION)
extern IO RI6;
#endif
#if defined(_PORTI_RI7_POSITION)
extern IO RI7;
#endif
#if defined(_PORTI_RI8_POSITION)
extern IO RI8;
#endif
#if defined(_PORTI_RI9_POSITION)
extern IO RI9;
#endif
#if defined(_PORTI_RI10_POSITION)
extern IO RI10;
#endif
#if defined(_PORTI_RI11_POSITION)
extern IO RI11;
#endif
#if defined(_PORTI_RI12_POSITION)
extern IO RI12;
#endif
#if defined(_PORTI_RI13_POSITION)
extern IO RI13;
#endif
#if defined(_PORTI_RI14_POSITION)
extern IO RI14;
#endif
#if defined(_PORTI_RI15_POSITION)
extern IO RI15;
#endif
#endif
#if defined (_PORTJ_BASE_ADDRESS)
#if defined(_PORTJ_RJ0_POSITION)
extern IO RJ0;
#endif
#if defined(_PORTJ_RJ1_POSITION)
extern IO RJ1;
#endif
#if defined(_PORTJ_RJ2_POSITION)
extern IO RJ2;
#endif
#if defined(_PORTJ_RJ3_POSITION)
extern IO RJ3;
#endif
#if defined(_PORTJ_RJ4_POSITION)
extern IO RJ4;
#endif
#if defined(_PORTJ_RJ5_POSITION)
extern IO RJ5;
#endif
#if defined(_PORTJ_RJ6_POSITION)
extern IO RJ6;
#endif
#if defined(_PORTJ_RJ7_POSITION)
extern IO RJ7;
#endif
#if defined(_PORTJ_RJ8_POSITION)
extern IO RJ8;
#endif
#if defined(_PORTJ_RJ9_POSITION)
extern IO RJ9;
#endif
#if defined(_PORTJ_RJ10_POSITION)
extern IO RJ10;
#endif
#if defined(_PORTJ_RJ11_POSITION)
extern IO RJ11;
#endif
#if defined(_PORTJ_RJ12_POSITION)
extern IO RJ12;
#endif
#if defined(_PORTJ_RJ13_POSITION)
extern IO RJ13;
#endif
#if defined(_PORTJ_RJ14_POSITION)
extern IO RJ14;
#endif
#if defined(_PORTJ_RJ15_POSITION)
extern IO RJ15;
#endif
#endif
#if defined (_PORTK_BASE_ADDRESS)
#if defined(_PORTK_RK0_POSITION)
extern IO RK0;
#endif
#if defined(_PORTK_RK1_POSITION)
extern IO RK1;
#endif
#if defined(_PORTK_RK2_POSITION)
extern IO RK2;
#endif
#if defined(_PORTK_RK3_POSITION)
extern IO RK3;
#endif
#if defined(_PORTK_RK4_POSITION)
extern IO RK4;
#endif
#if defined(_PORTK_RK5_POSITION)
extern IO RK5;
#endif
#if defined(_PORTK_RK6_POSITION)
extern IO RK6;
#endif
#if defined(_PORTK_RK7_POSITION)
extern IO RK7;
#endif
#if defined(_PORTK_RK8_POSITION)
extern IO RK8;
#endif
#if defined(_PORTK_RK9_POSITION)
extern IO RK9;
#endif
#if defined(_PORTK_RK10_POSITION)
extern IO RK10;
#endif
#if defined(_PORTK_RK11_POSITION)
extern IO RK11;
#endif
#if defined(_PORTK_RK12_POSITION)
extern IO RK12;
#endif
#if defined(_PORTK_RK13_POSITION)
extern IO RK13;
#endif
#if defined(_PORTK_RK14_POSITION)
extern IO RK14;
#endif
#if defined(_PORTK_RK15_POSITION)
extern IO RK15;
#endif
#endif
#endif

#endif