' Definition File for the Crownhill Associates Ltd Proton+ BASIC Compiler. ' Always make a backup of this file if modifications are carried out. ' Modifications to this file may affect the performance of the compiler ' ' Device 18F252 ' File Author Les Johnson. ' Creation Date 31/03/2009 ' $ifndef _18F252_ $define _18F252_ ' Device Information $define _device _18F252 $define _core 16 $define _ram 1536 ' Amount of RAM $define _code 32768 ' Amount of Flash Memory $define _eeprom 256 ' Amount of Eeprom Memory $define _ports 3 ' Amount of Ports $define _debug 1 ' Whether the device has Debug capabilities $define _block 8 ' Size of the Code Memory Write Segment (in Bytes) $define _mssp 2 ' 0 = None, 1 = Single MSSP, 2 = Dual MSSP, 3 = SSP Only $define _flash 1 ' Whether the device has Self Modifying support. 0 = No, 1 = Read and Write, 2 = Read no Write $define _usb 0 ' Amount of USBs $define _uart 1 ' Amount of UARTs $define _adcres 10 ' Resolution of ADC (in bits) $define _adc 5 ' Amount of ADC channels $define _bankAend 127 $define _rambanks 6 ' Special Function Registers (SFRs) $define _TOSU 4095 $define _TOSH 4094 $define _TOSL 4093 $define _STKPTR 4092 $define _PCLATU 4091 $define _PCLATH 4090 $define _PCL 4089 $define _TBLPTRU 4088 $define _TBLPTRH 4087 $define _TBLPTRL 4086 $define _TABLAT 4085 $define _PRODH 4084 $define _PRODL 4083 $define _INTCON 4082 $define _INTCON1 4082 $define _INTCON2 4081 $define _INTCON3 4080 $define _INDF0 4079 $define _POSTINC0 4078 $define _POSTDEC0 4077 $define _PREINC0 4076 $define _PLUSW0 4075 $define _FSR0H 4074 $define _FSR0L 4073 $define _WREG 4072 $define _INDF1 4071 $define _POSTINC1 4070 $define _POSTDEC1 4069 $define _PREINC1 4068 $define _PLUSW1 4067 $define _FSR1H 4066 $define _FSR1L 4065 $define _BSR 4064 $define _INDF2 4063 $define _POSTINC2 4062 $define _POSTDEC2 4061 $define _PREINC2 4060 $define _PLUSW2 4059 $define _FSR2H 4058 $define _FSR2L 4057 $define _STATUS 4056 $define _TMR0H 4055 $define _TMR0L 4054 $define _T0CON 4053 $define _OSCCON 4051 $define _LVDCON 4050 $define _WDTCON 4049 $define _RCON 4048 $define _TMR1H 4047 $define _TMR1L 4046 $define _T1CON 4045 $define _TMR2 4044 $define _PR2 4043 $define _T2CON 4042 $define _SSPBUF 4041 $define _SSPADD 4040 $define _SSPSTAT 4039 $define _SSPCON1 4038 $define _SSPCON2 4037 $define _ADRESH 4036 $define _ADRESL 4035 $define _ADCON0 4034 $define _ADCON1 4033 $define _CCPR1H 4031 $define _CCPR1L 4030 $define _CCP1CON 4029 $define _CCPR2H 4028 $define _CCPR2L 4027 $define _CCP2CON 4026 $define _TMR3H 4019 $define _TMR3L 4018 $define _T3CON 4017 $define _SPBRG 4015 $define _RCREG 4014 $define _TXREG 4013 $define _TXSTA 4012 $define _RCSTA 4011 $define _EEADR 4009 $define _EEDATA 4008 $define _EECON2 4007 $define _EECON1 4006 $define _IPR2 4002 $define _PIR2 4001 $define _PIE2 4000 $define _IPR1 3999 $define _PIR1 3998 $define _PIE1 3997 $define _LATC 3979 $define _LATB 3978 $define _LATA 3977 $define _PORTA 3968 $define _PORTB 3969 $define _PORTC 3970 $define _TRISA 3986 $define _TRISB 3987 $define _TRISC 3988 ' STKPTR bits $define STKPTRbits_STKFUL STKPTR.7 $define STKPTRbits_STKUNF STKPTR.6 ' INTCON bits $define INTCONbits_GIE INTCON.7 $define INTCONbits_GIEH INTCON.7 $define INTCONbits_PEIE INTCON.6 $define INTCONbits_GIEL INTCON.6 $define INTCONbits_TMR0IE INTCON.5 $define INTCONbits_T0IE INTCON.5 $define INTCONbits_INT0IE INTCON.4 $define INTCONbits_INT0E INTCON.4 $define INTCONbits_RBIE INTCON.3 $define INTCONbits_TMR0IF INTCON.2 $define INTCONbits_T0IF INTCON.2 $define INTCONbits_INT0IF INTCON.1 $define INTCONbits_INT0F INTCON.1 $define INTCONbits_RBIF INTCON.0 ' INTCON2 bits $define INTCON2bits_NOT_RBPU INTCON2.7 $define INTCON2bits_RBPU INTCON2.7 $define INTCON2bits_INTEDG0 INTCON2.6 $define INTCON2bits_INTEDG1 INTCON2.5 $define INTCON2bits_INTEDG2 INTCON2.4 $define INTCON2bits_TMR0IP INTCON2.2 $define INTCON2bits_T0IP INTCON2.2 $define INTCON2bits_RBIP INTCON2.0 ' INTCON3 bits $define INTCON3bits_INT2IP INTCON3.7 $define INTCON3bits_INT1IP INTCON3.6 $define INTCON3bits_INT2IE INTCON3.4 $define INTCON3bits_INT1IE INTCON3.3 $define INTCON3bits_INT2IF INTCON3.1 $define INTCON3bits_INT1IF INTCON3.0 ' STATUS bits $define STATUSbits_N STATUS.4 $define STATUSbits_OV STATUS.3 $define STATUSbits_Z STATUS.2 $define STATUSbits_DC STATUS.1 $define STATUSbits_C STATUS.0 ' T0CON bits $define T0CONbits_TMR0ON T0CON.7 $define T0CONbits_T08BIT T0CON.6 $define T0CONbits_T0CS T0CON.5 $define T0CONbits_T0SE T0CON.4 $define T0CONbits_PSA T0CON.3 $define T0CONbits_T0PS2 T0CON.2 $define T0CONbits_T0PS1 T0CON.1 $define T0CONbits_T0PS0 T0CON.0 ' OSCCON bits $define OSCCONbits_SCS OSCCON.0 ' LVDCON bits $define LVDCONbits_IRVST LVDCON.5 $define LVDCONbits_LVDEN LVDCON.4 $define LVDCONbits_LVDL3 LVDCON.3 $define LVDCONbits_LVDL2 LVDCON.2 $define LVDCONbits_LVDL1 LVDCON.1 $define LVDCONbits_LVDL0 LVDCON.0 ' WDTCON bits $define WDTCONbits_SWDTE WDTCON.0 $define WDTCONbits_SWDTEN WDTCON.0 ' RCON bits $define RCONbits_IPEN RCON.7 $define RCONbits_NOT_RI RCON.4 $define RCONbits_RI RCON.4 $define RCONbits_NOT_TO RCON.3 $define RCONbits_TO RCON.3 $define RCONbits_NOT_PD RCON.2 $define RCONbits_PD RCON.2 $define RCONbits_NOT_POR RCON.1 $define RCONbits_POR RCON.1 $define RCONbits_NOT_BOR RCON.0 $define RCONbits_BOR RCON.0 ' T1CON bits $define T1CONbits_RD16 T1CON.7 $define T1CONbits_T1CKPS1 T1CON.5 $define T1CONbits_T1CKPS0 T1CON.4 $define T1CONbits_T1OSCEN T1CON.3 $define T1CONbits_NOT_T1SYNC T1CON.2 $define T1CONbits_T1SYNC T1CON.2 $define T1CONbits_T1INSYNC T1CON.2 $define T1CONbits_TMR1CS T1CON.1 $define T1CONbits_TMR1ON T1CON.0 ' T2CON bits $define T2CONbits_TOUTPS3 T2CON.6 $define T2CONbits_TOUTPS2 T2CON.5 $define T2CONbits_TOUTPS1 T2CON.4 $define T2CONbits_TOUTPS0 T2CON.3 $define T2CONbits_TMR2ON T2CON.2 $define T2CONbits_T2CKPS1 T2CON.1 $define T2CONbits_T2CKPS0 T2CON.0 ' SSPSTAT bits $define SSPSTATbits_SMP SSPSTAT.7 $define SSPSTATbits_CKE SSPSTAT.6 $define SSPSTATbits_D SSPSTAT.5 $define SSPSTATbits_I2C_DAT SSPSTAT.5 $define SSPSTATbits_NOT_A SSPSTAT.5 $define SSPSTATbits_NOT_ADDRESS SSPSTAT.5 $define SSPSTATbits_DA SSPSTAT.5 $define SSPSTATbits_DATA_ADDRESS SSPSTAT.5 $define SSPSTATbits_P SSPSTAT.4 $define SSPSTATbits_I2C_STOP SSPSTAT.4 $define SSPSTATbits_S SSPSTAT.3 $define SSPSTATbits_I2C_START SSPSTAT.3 $define SSPSTATbits_R SSPSTAT.2 $define SSPSTATbits_I2C_READ SSPSTAT.2 $define SSPSTATbits_NOT_W SSPSTAT.2 $define SSPSTATbits_NOT_WRITE SSPSTAT.2 $define SSPSTATbits_RW SSPSTAT.2 $define SSPSTATbits_READ_WRITE SSPSTAT.2 $define SSPSTATbits_UA SSPSTAT.1 $define SSPSTATbits_BF SSPSTAT.0 ' SSPCON1 bits $define SSPCON1bits_WCOL SSPCON1.7 $define SSPCON1bits_SSPOV SSPCON1.6 $define SSPCON1bits_SSPEN SSPCON1.5 $define SSPCON1bits_CKP SSPCON1.4 $define SSPCON1bits_SSPM3 SSPCON1.3 $define SSPCON1bits_SSPM2 SSPCON1.2 $define SSPCON1bits_SSPM1 SSPCON1.1 $define SSPCON1bits_SSPM0 SSPCON1.0 ' SSPCON2 bits $define SSPCON2bits_GCEN SSPCON2.7 $define SSPCON2bits_ACKSTAT SSPCON2.6 $define SSPCON2bits_ACKDT SSPCON2.5 $define SSPCON2bits_ACKEN SSPCON2.4 $define SSPCON2bits_RCEN SSPCON2.3 $define SSPCON2bits_PEN SSPCON2.2 $define SSPCON2bits_RSEN SSPCON2.1 $define SSPCON2bits_SEN SSPCON2.0 ' ADCON0 bits $define ADCON0bits_ADCS1 ADCON0.7 $define ADCON0bits_ADCS0 ADCON0.6 $define ADCON0bits_CHS2 ADCON0.5 $define ADCON0bits_CHS1 ADCON0.4 $define ADCON0bits_CHS0 ADCON0.3 $define ADCON0bits_GO ADCON0.2 $define ADCON0bits_NOT_DONE ADCON0.2 $define ADCON0bits_DONE ADCON0.2 $define ADCON0bits_GO_DONE ADCON0.2 $define ADCON0bits_ADON ADCON0.0 ' ADCON1 bits $define ADCON1bits_ADFM ADCON1.7 $define ADCON1bits_ADCS2 ADCON1.6 $define ADCON1bits_PCFG3 ADCON1.3 $define ADCON1bits_PCFG2 ADCON1.2 $define ADCON1bits_PCFG1 ADCON1.1 $define ADCON1bits_PCFG0 ADCON1.0 ' CCP1CON bits $define CCP1CONbits_DC1B1 CCP1CON.5 $define CCP1CONbits_CCP1X CCP1CON.5 $define CCP1CONbits_DC1B0 CCP1CON.4 $define CCP1CONbits_CCP1Y CCP1CON.4 $define CCP1CONbits_CCP1M3 CCP1CON.3 $define CCP1CONbits_CCP1M2 CCP1CON.2 $define CCP1CONbits_CCP1M1 CCP1CON.1 $define CCP1CONbits_CCP1M0 CCP1CON.0 ' CCP2CON bits $define CCP2CONbits_DC2B1 CCP2CON.5 $define CCP2CONbits_CCP2X CCP2CON.5 $define CCP2CONbits_DC2B0 CCP2CON.4 $define CCP2CONbits_CCP2Y CCP2CON.4 $define CCP2CONbits_CCP2M3 CCP2CON.3 $define CCP2CONbits_CCP2M2 CCP2CON.2 $define CCP2CONbits_CCP2M1 CCP2CON.1 $define CCP2CONbits_CCP2M0 CCP2CON.0 ' T3CON bits $define T3CONbits_RD16 T3CON.7 $define T3CONbits_T3CCP2 T3CON.6 $define T3CONbits_T3CKPS1 T3CON.5 $define T3CONbits_T3CKPS0 T3CON.4 $define T3CONbits_T3CCP1 T3CON.3 $define T3CONbits_NOT_T3SYNC T3CON.2 $define T3CONbits_T3SYNC T3CON.2 $define T3CONbits_T3INSYNC T3CON.2 $define T3CONbits_TMR3CS T3CON.1 $define T3CONbits_TMR3ON T3CON.0 ' TXSTA bits $define TXSTAbits_CSRC TXSTA.7 $define TXSTAbits_TX9 TXSTA.6 $define TXSTAbits_NOT_TX8 TXSTA.6 $define TXSTAbits_TX8_9 TXSTA.6 $define TXSTAbits_TXEN TXSTA.5 $define TXSTAbits_SYNC TXSTA.4 $define TXSTAbits_BRGH TXSTA.2 $define TXSTAbits_TRMT TXSTA.1 $define TXSTAbits_TX9D TXSTA.0 $define TXSTAbits_TXD8 TXSTA.0 ' RCSTA bits $define RCSTAbits_SPEN RCSTA.7 $define RCSTAbits_RX9 RCSTA.6 $define RCSTAbits_RC9 RCSTA.6 $define RCSTAbits_NOT_RC8 RCSTA.6 $define RCSTAbits_RC8_9 RCSTA.6 $define RCSTAbits_SREN RCSTA.5 $define RCSTAbits_CREN RCSTA.4 $define RCSTAbits_ADDEN RCSTA.3 $define RCSTAbits_FERR RCSTA.2 $define RCSTAbits_OERR RCSTA.1 $define RCSTAbits_RX9D RCSTA.0 $define RCSTAbits_RCD8 RCSTA.0 ' IPR2 bits $define IPR2bits_EEIP IPR2.4 $define IPR2bits_BCLIP IPR2.3 $define IPR2bits_LVDIP IPR2.2 $define IPR2bits_TMR3IP IPR2.1 $define IPR2bits_CCP2IP IPR2.0 ' PIR2 bits $define PIR2bits_EEIF PIR2.4 $define PIR2bits_BCLIF PIR2.3 $define PIR2bits_LVDIF PIR2.2 $define PIR2bits_TMR3IF PIR2.1 $define PIR2bits_CCP2IF PIR2.0 ' PIE2 bits $define PIE2bits_EEIE PIE2.4 $define PIE2bits_BCLIE PIE2.3 $define PIE2bits_LVDIE PIE2.2 $define PIE2bits_TMR3IE PIE2.1 $define PIE2bits_CCP2IE PIE2.0 ' IPR1 bits $define IPR1bits_PSPIP IPR1.7 $define IPR1bits_ADIP IPR1.6 $define IPR1bits_RCIP IPR1.5 $define IPR1bits_TXIP IPR1.4 $define IPR1bits_SSPIP IPR1.3 $define IPR1bits_CCP1IP IPR1.2 $define IPR1bits_TMR2IP IPR1.1 $define IPR1bits_TMR1IP IPR1.0 ' PIR1 bits $define PIR1bits_PSPIF PIR1.7 $define PIR1bits_ADIF PIR1.6 $define PIR1bits_RCIF PIR1.5 $define PIR1bits_TXIF PIR1.4 $define PIR1bits_SSPIF PIR1.3 $define PIR1bits_CCP1IF PIR1.2 $define PIR1bits_TMR2IF PIR1.1 $define PIR1bits_TMR1IF PIR1.0 ' PIE1 bits $define PIE1bits_PSPIE PIE1.7 $define PIE1bits_ADIE PIE1.6 $define PIE1bits_RCIE PIE1.5 $define PIE1bits_TXIE PIE1.4 $define PIE1bits_SSPIE PIE1.3 $define PIE1bits_CCP1IE PIE1.2 $define PIE1bits_TMR2IE PIE1.1 $define PIE1bits_TMR1IE PIE1.0 ' EECON1 bits $define EECON1bits_EEPGD EECON1.7 $define EECON1bits_CFGS EECON1.6 $define EECON1bits_FREE EECON1.4 $define EECON1bits_WRERR EECON1.3 $define EECON1bits_WREN EECON1.2 $define EECON1bits_WR EECON1.1 $define EECON1bits_RD EECON1.0 ' PORTA bits $define PORTAbits_RA6 PORTA.6 $define PORTAbits_RA5 PORTA.5 $define PORTAbits_RA4 PORTA.4 $define PORTAbits_RA3 PORTA.3 $define PORTAbits_RA2 PORTA.2 $define PORTAbits_RA1 PORTA.1 $define PORTAbits_RA0 PORTA.0 ' PORTB bits $define PORTBbits_RB7 PORTB.7 $define PORTBbits_RB6 PORTB.6 $define PORTBbits_RB5 PORTB.5 $define PORTBbits_RB4 PORTB.4 $define PORTBbits_RB3 PORTB.3 $define PORTBbits_RB2 PORTB.2 $define PORTBbits_RB1 PORTB.1 $define PORTBbits_RB0 PORTB.0 ' PORTC bits $define PORTCbits_RC7 PORTC.7 $define PORTCbits_RC6 PORTC.6 $define PORTCbits_RC5 PORTC.5 $define PORTCbits_RC4 PORTC.4 $define PORTCbits_RC3 PORTC.3 $define PORTCbits_RC2 PORTC.2 $define PORTCbits_RC1 PORTC.1 $define PORTCbits_RC0 PORTC.0 ' LATA bits $define LATAbits_LATA6 LATA.6 $define LATAbits_LATA5 LATA.5 $define LATAbits_LATA4 LATA.4 $define LATAbits_LATA3 LATA.3 $define LATAbits_LATA2 LATA.2 $define LATAbits_LATA1 LATA.1 $define LATAbits_LATA0 LATA.0 ' LATB bits $define LATBbits_LATB7 LATB.7 $define LATBbits_LATB6 LATB.6 $define LATBbits_LATB5 LATB.5 $define LATBbits_LATB4 LATB.4 $define LATBbits_LATB3 LATB.3 $define LATBbits_LATB2 LATB.2 $define LATBbits_LATB1 LATB.1 $define LATBbits_LATB0 LATB.0 ' LATC bits $define LATCbits_LATC7 LATC.7 $define LATCbits_LATC6 LATC.6 $define LATCbits_LATC5 LATC.5 $define LATCbits_LATC4 LATC.4 $define LATCbits_LATC3 LATC.3 $define LATCbits_LATC2 LATC.2 $define LATCbits_LATC1 LATC.1 $define LATCbits_LATC0 LATC.0 ' TRISA bits $define TRISAbits_TRISA6 TRISA.6 $define TRISAbits_TRISA5 TRISA.5 $define TRISAbits_TRISA4 TRISA.4 $define TRISAbits_TRISA3 TRISA.3 $define TRISAbits_TRISA2 TRISA.2 $define TRISAbits_TRISA1 TRISA.1 $define TRISAbits_TRISA0 TRISA.0 ' TRISB bits $define TRISBbits_TRISB7 TRISB.7 $define TRISBbits_TRISB6 TRISB.6 $define TRISBbits_TRISB5 TRISB.5 $define TRISBbits_TRISB4 TRISB.4 $define TRISBbits_TRISB3 TRISB.3 $define TRISBbits_TRISB2 TRISB.2 $define TRISBbits_TRISB1 TRISB.1 $define TRISBbits_TRISB0 TRISB.0 ' TRISC bits $define TRISCbits_TRISC7 TRISC.7 $define TRISCbits_TRISC6 TRISC.6 $define TRISCbits_TRISC5 TRISC.5 $define TRISCbits_TRISC4 TRISC.4 $define TRISCbits_TRISC3 TRISC.3 $define TRISCbits_TRISC2 TRISC.2 $define TRISCbits_TRISC1 TRISC.1 $define TRISCbits_TRISC0 TRISC.0 ' TBLPTRU bits $define TBLPTRUbits_ACSS TBLPTRU.5 $define TBLPTRUbits_TBLPTRU4 TBLPTRU.4 $define TBLPTRUbits_TBLPTRU3 TBLPTRU.3 $define TBLPTRUbits_TBLPTRU2 TBLPTRU.2 $define TBLPTRUbits_TBLPTRU1 TBLPTRU.1 $define TBLPTRUbits_TBLPTRU0 TBLPTRU.0 ' PCLATU bits $define PCLATUbits_PCU4 PCLATU.4 $define PCLATUbits_PCU3 PCLATU.3 $define PCLATUbits_PCU2 PCLATU.2 $define PCLATUbits_PCU1 PCLATU.1 $define PCLATUbits_PCU0 PCLATU.0 $endif