+2005-05-19 Raphael Neider <rneider AT web.de>
+
+ * src/pic16/main.c (_process_pragma): check for missing
+ arguments to pragmas code and udata
+ * device/include/pic16/pic18f{2550,4331,4455,4520}.h:
+ consistency fixes to match other headers (thanks to Jim Paris)
+ * device/lib/pic16/libio/i2c.ignore: 18f4331 provides no I2C
+
2005-05-21 Maarten Brock <sourceforge.brock AT dse.nl>
* src/SDCCicode.c (isOperandEqual): fixed missing ;
2005-05-17 Raphael Neider <rneider AT web.de>
- * device/include/pic18f{2550,4331,4455,4520}.h: NEW
+ * device/include/pic16/pic18f{2550,4331,4455,4520}.h: NEW
* device/lib/pic16/libdev/pic18f{2550,4331,4455,4520}.c: NEW
* device/lib/pic16/pics.all: added new devices
* src/pic16/device.c: added support for pic18f4520
struct {
unsigned TMR3ON : 1;
unsigned TMR3CS : 1;
- unsigned nT3SYNC : 1;
+ unsigned NOT_T3SYNC : 1;
unsigned T3CCP1 : 1;
- unsigned T3CKPS : 2;
+ unsigned T3CKPS0 : 1;
+ unsigned T3CKPS1 : 1;
unsigned T3CCP2 : 1;
unsigned RD16 : 1;
};
extern __sfr __at (0xFB4) CMCON;
typedef union {
struct {
- unsigned CM : 3;
+ unsigned CM0 : 1;
+ unsigned CM1 : 1;
+ unsigned CM2 : 1;
unsigned CIS : 1;
unsigned C1INV : 1;
unsigned C2INV : 1;
extern __sfr __at (0xFB5) CVRCON;
typedef union {
struct {
- unsigned CVR : 4;
+ unsigned CVR0 : 1;
+ unsigned CVR1 : 1;
+ unsigned CVR2 : 1;
+ unsigned CVR3 : 1;
unsigned CVRSS : 1;
unsigned CVRR : 1;
unsigned CVROE : 1;
struct {
unsigned : 1;
unsigned : 1;
- unsigned PSSAC : 2;
- unsigned ECCPAS : 3;
+ unsigned PSSAC0 : 1;
+ unsigned PSSAC1 : 1;
+ unsigned ECCPAS0 : 1;
+ unsigned ECCPAS1 : 1;
+ unsigned ECCPAS2 : 1;
unsigned ECCPASE : 1;
};
} __ECCP1AS_t;
extern __sfr __at (0xFBA) CCP2CON;
typedef union {
struct {
- unsigned CCP2M : 4;
- unsigned DC2B : 2;
+ unsigned CCP2M0 : 1;
+ unsigned CCP2M1 : 1;
+ unsigned CCP2M2 : 1;
+ unsigned CCP2M3 : 1;
+ unsigned DC2B0 : 1;
+ unsigned DC2B1 : 1;
unsigned : 1;
unsigned : 1;
};
extern __sfr __at (0xFBD) CCP1CON;
typedef union {
struct {
- unsigned CCP1M : 4;
- unsigned DC1B : 2;
+ unsigned CCP1M0 : 1;
+ unsigned CCP1M1 : 1;
+ unsigned CCP1M2 : 1;
+ unsigned CCP1M3 : 1;
+ unsigned DC1B0 : 1;
+ unsigned DC1B1 : 1;
unsigned : 1;
unsigned : 1;
};
extern __sfr __at (0xFC0) ADCON2;
typedef union {
struct {
- unsigned ADCS : 3;
- unsigned ACQT : 3;
+ unsigned ADCS0 : 1;
+ unsigned ADCS1 : 1;
+ unsigned ADCS2 : 1;
+ unsigned ACQT0 : 1;
+ unsigned ACQT1 : 1;
+ unsigned ACQT2 : 1;
unsigned : 1;
unsigned ADFM : 1;
};
extern __sfr __at (0xFC1) ADCON1;
typedef union {
struct {
- unsigned PCFG : 4;
- unsigned VCFG : 2;
+ unsigned PCFG0 : 1;
+ unsigned PCFG1 : 1;
+ unsigned PCFG2 : 1;
+ unsigned PCFG3 : 1;
+ unsigned VCFG0 : 1;
+ unsigned VCFG1 : 1;
unsigned : 1;
unsigned : 1;
};
typedef union {
struct {
unsigned ADON : 1;
- unsigned GO_nDONE : 1;
- unsigned CHS : 4;
+ unsigned GO : 1;
+ unsigned CHS0 : 1;
+ unsigned CHS1 : 1;
+ unsigned CHS2 : 1;
+ unsigned CHS3 : 1;
unsigned : 1;
unsigned : 1;
};
extern __sfr __at (0xFC6) SSPCON1;
typedef union {
struct {
- unsigned SSPM : 4;
+ unsigned SSPM0 : 1;
+ unsigned SSPM1 : 1;
+ unsigned SSPM2 : 1;
+ unsigned SSPM3 : 1;
unsigned CKP : 1;
unsigned SSPEN : 1;
unsigned SSPOV : 1;
struct {
unsigned BF : 1;
unsigned UA : 1;
- unsigned R_nW : 1;
+ unsigned R_W : 1;
unsigned S : 1;
unsigned P : 1;
- unsigned D_nA : 1;
+ unsigned D_A : 1;
unsigned CKE : 1;
unsigned SMP : 1;
};
extern __sfr __at (0xFCA) T2CON;
typedef union {
struct {
- unsigned T2CKPS : 2;
+ unsigned T2CKPS0 : 1;
+ unsigned T2CKPS1 : 1;
unsigned TMR2ON : 1;
- unsigned TOUTPS : 4;
+ unsigned TOUTPS0 : 1;
+ unsigned TOUTPS1 : 1;
+ unsigned TOUTPS2 : 1;
+ unsigned TOUTPS3 : 1;
unsigned : 1;
};
} __T2CON_t;
struct {
unsigned TMR1ON : 1;
unsigned TMR1CS : 1;
- unsigned nT1SYNC : 1;
+ unsigned NOT_T1SYNC : 1;
unsigned T1OSCEN : 1;
- unsigned T1CKPS : 2;
+ unsigned T1CKPS0 : 1;
+ unsigned T1CKPS1 : 1;
unsigned T1RUN : 1;
unsigned RD16 : 1;
};
extern __sfr __at (0xFD0) RCON;
typedef union {
struct {
- unsigned nBOR : 1;
- unsigned nPOR : 1;
- unsigned nPD : 1;
- unsigned nTO : 1;
- unsigned nRI : 1;
+ unsigned BOR : 1;
+ unsigned POR : 1;
+ unsigned PD : 1;
+ unsigned TO : 1;
+ unsigned RI : 1;
unsigned : 1;
unsigned SBOREN : 1;
unsigned IPEN : 1;
extern __sfr __at (0xFD2) HLVDCON;
typedef union {
struct {
- unsigned HLVDL : 4;
+ unsigned HLVDL0 : 1;
+ unsigned HLVDL1 : 1;
+ unsigned HLVDL2 : 1;
+ unsigned HLVDL3 : 1;
unsigned HLVDEN : 1;
unsigned IRVST : 1;
unsigned : 1;
extern __sfr __at (0xFD5) T0CON;
typedef union {
struct {
- unsigned T0PS : 3;
+ unsigned T0PS0 : 1;
+ unsigned T0PS1 : 1;
+ unsigned T0PS2 : 1;
unsigned PSA : 1;
unsigned T0SE : 1;
unsigned T0CS : 1;
unsigned INTEDG2 : 1;
unsigned INTEDG1 : 1;
unsigned INTEDG0 : 1;
- unsigned nRBPU : 1;
+ unsigned RBPU : 1;
};
} __INTCON2_t;
extern volatile __INTCON2_t __at (0xFF1) INTCON2bits;
unsigned RBIE : 1;
unsigned INT0IE : 1;
unsigned TMR0IE : 1;
- unsigned PEIE_GIEL : 1;
- unsigned GIE_GIEH : 1;
- };
- struct {
- unsigned : 1;
- unsigned : 1;
- unsigned : 1;
- unsigned : 1;
- unsigned : 1;
- unsigned : 1;
unsigned PEIE : 1;
unsigned GIE : 1;
};
extern volatile __TOSU_t __at (0xFFF) TOSUbits;
/* Configuration register locations */
-#define CONFIG1L 0x300000
-#define CONFIG1H 0x300001
-#define CONFIG2L 0x300002
-#define CONFIG2H 0x300003
-#define CONFIG3H 0x300005
-#define CONFIG4L 0x300006
-#define CONFIG5L 0x300008
-#define CONFIG5H 0x300009
-#define CONFIG6L 0x30000A
-#define CONFIG6H 0x30000B
-#define CONFIG7L 0x30000C
-#define CONFIG7H 0x30000D
+#define __CONFIG1L 0x300000
+#define __CONFIG1H 0x300001
+#define __CONFIG2L 0x300002
+#define __CONFIG2H 0x300003
+#define __CONFIG3H 0x300005
+#define __CONFIG4L 0x300006
+#define __CONFIG5L 0x300008
+#define __CONFIG5H 0x300009
+#define __CONFIG6L 0x30000A
+#define __CONFIG6H 0x30000B
+#define __CONFIG7L 0x30000C
+#define __CONFIG7H 0x30000D
/* Full-Speed USB Clock Source Selection 1L options */
extern __sfr __at (0xF60) DFLTCON;
typedef union {
struct {
- unsigned FLTCK : 3;
+ unsigned FLTCK0 : 1;
+ unsigned FLTCK1 : 1;
+ unsigned FLTCK2 : 1;
unsigned FLT1EN : 1;
unsigned FLT2EN : 1;
unsigned FLT3EN : 1;
extern __sfr __at (0xF61) CAP3CON;
typedef union {
struct {
- unsigned CAP3M : 4;
+ unsigned CAP3M0 : 1;
+ unsigned CAP3M1 : 1;
+ unsigned CAP3M2 : 1;
+ unsigned CAP3M3 : 1;
unsigned : 1;
unsigned CAP3TMR : 1;
unsigned CAP3REN : 1;
extern __sfr __at (0xF62) CAP2CON;
typedef union {
struct {
- unsigned CAP2M : 4;
+ unsigned CAP2M0 : 1;
+ unsigned CAP2M1 : 1;
+ unsigned CAP2M2 : 1;
+ unsigned CAP2M3 : 1;
unsigned : 1;
unsigned CAP2TMR : 1;
unsigned CAP2REN : 1;
extern __sfr __at (0xF63) CAP1CON;
typedef union {
struct {
- unsigned CAP1M : 4;
+ unsigned CAP1M0 : 1;
+ unsigned CAP1M1 : 1;
+ unsigned CAP1M2 : 1;
+ unsigned CAP1M3 : 1;
unsigned : 1;
unsigned CAP1TMR : 1;
unsigned CAP1REN : 1;
typedef union {
struct {
unsigned DTA : 6;
- unsigned DTAPS : 2;
+ unsigned DTAPS0 : 1;
+ unsigned DTAPS1 : 1;
};
} __DTCON_t;
extern volatile __DTCON_t __at (0xF6D) DTCONbits;
unsigned UDIS : 1;
unsigned : 1;
unsigned SEVTDIR : 1;
- unsigned SEVOPS : 4;
+ unsigned SEVOPS0 : 1;
+ unsigned SEVOPS1 : 1;
+ unsigned SEVOPS2 : 1;
+ unsigned SEVOPS3 : 1;
};
} __PWMCON1_t;
extern volatile __PWMCON1_t __at (0xF6E) PWMCON1bits;
extern __sfr __at (0xF6F) PWMCON0;
typedef union {
struct {
- unsigned PMOD : 4;
- unsigned PWMEN : 3;
+ unsigned PMOD0 : 1;
+ unsigned PMOD1 : 1;
+ unsigned PMOD2 : 1;
+ unsigned PMOD3 : 1;
+ unsigned PWMEN0 : 1;
+ unsigned PWMEN1 : 1;
+ unsigned PWMEN2 : 1;
unsigned : 1;
};
} __PWMCON0_t;
extern __sfr __at (0xF7F) PTCON0;
typedef union {
struct {
- unsigned PTMOD : 2;
- unsigned PTCKPS : 2;
- unsigned PTOPS : 4;
+ unsigned PTMOD0 : 1;
+ unsigned PTMOD1 : 1;
+ unsigned PTCKPS0 : 1;
+ unsigned PTCKPS1 : 1;
+ unsigned PTOPS0 : 1;
+ unsigned PTOPS1 : 1;
+ unsigned PTOPS2 : 1;
+ unsigned PTOPS3 : 1;
};
} __PTCON0_t;
extern volatile __PTCON0_t __at (0xF7F) PTCON0bits;
extern __sfr __at (0xF99) ADCHS;
typedef union {
struct {
- unsigned SASEL : 2;
- unsigned SCSEL : 2;
- unsigned SBSEL : 2;
- unsigned SDSEL : 2;
+ unsigned SASEL0 : 1;
+ unsigned SASEL1 : 1;
+ unsigned SCSEL0 : 1;
+ unsigned SCSEL1 : 1;
+ unsigned SBSEL0 : 1;
+ unsigned SBSEL1 : 1;
+ unsigned SDSEL0 : 1;
+ unsigned SDSEL1 : 1;
};
} __ADCHS_t;
extern volatile __ADCHS_t __at (0xF99) ADCHSbits;
struct {
unsigned PDEC : 2;
unsigned QEIM : 3;
- unsigned UP_nDOWN : 1;
+ unsigned UP_DOWN : 1;
unsigned : 1;
- unsigned nVELM : 1;
+ unsigned VELM : 1;
};
} __QEICON_t;
extern volatile __QEICON_t __at (0xFB6) QEICONbits;
struct {
unsigned TMR5ON : 1;
unsigned TMR5CS : 1;
- unsigned nT5SYNC : 1;
- unsigned T5PS : 2;
+ unsigned NOT_T5SYNC : 1;
+ unsigned T5PS0 : 1;
+ unsigned T5PS1 : 1;
unsigned T5MOD : 1;
- unsigned nRESEN : 1;
+ unsigned RESEN : 1;
unsigned T5SEN : 1;
};
} __T5CON_t;
extern __sfr __at (0xFBA) CCP2CON;
typedef union {
struct {
- unsigned CCP2M : 4;
- unsigned DC2B : 2;
+ unsigned CCP2M0 : 1;
+ unsigned CCP2M1 : 1;
+ unsigned CCP2M2 : 1;
+ unsigned CCP2M3 : 1;
+ unsigned DC2B0 : 1;
+ unsigned DC2B1 : 1;
unsigned : 1;
unsigned : 1;
};
extern __sfr __at (0xFBD) CCP1CON;
typedef union {
struct {
- unsigned CCP1M : 4;
- unsigned DC1B : 2;
+ unsigned CCP1M0 : 1;
+ unsigned CCP1M1 : 1;
+ unsigned CCP1M2 : 1;
+ unsigned CCP1M3 : 1;
+ unsigned DC1B0 : 1;
+ unsigned DC1B1 : 1;
unsigned : 1;
unsigned : 1;
};
extern __sfr __at (0xFC0) ADCON2;
typedef union {
struct {
- unsigned ADCS : 3;
- unsigned ACQT : 4;
+ unsigned ADCS0 : 1;
+ unsigned ADCS1 : 1;
+ unsigned ADCS2 : 1;
+ unsigned ACQT0 : 1;
+ unsigned ACQT1 : 1;
+ unsigned ACQT2 : 1;
+ unsigned ACQT3 : 1;
unsigned ADFM : 1;
};
} __ADCON2_t;
extern __sfr __at (0xFC1) ADCON1;
typedef union {
struct {
- unsigned ADPNT : 2;
+ unsigned ADPNT0 : 1;
+ unsigned ADPNT1 : 1;
unsigned BFOVFL : 1;
unsigned BFEMT : 1;
unsigned FIFOEN : 1;
unsigned : 1;
- unsigned VCFG : 2;
+ unsigned VCFG0 : 1;
+ unsigned VCFG1 : 1;
};
} __ADCON1_t;
extern volatile __ADCON1_t __at (0xFC1) ADCON1bits;
typedef union {
struct {
unsigned ADON : 1;
- unsigned GO_nDONE : 1;
- unsigned ACMOD : 2;
+ unsigned GO : 1;
+ unsigned ACMOD0 : 1;
+ unsigned ACMOD1 : 1;
unsigned ACSCH : 1;
unsigned ACONV : 1;
unsigned : 1;
extern __sfr __at (0xFC6) SSPCON;
typedef union {
struct {
- unsigned SSPM : 4;
+ unsigned SSPM0 : 1;
+ unsigned SSPM1 : 1;
+ unsigned SSPM2 : 1;
+ unsigned SSPM3 : 1;
unsigned CKP : 1;
unsigned SSPEN : 1;
unsigned SSPOV : 1;
struct {
unsigned BF : 1;
unsigned UA : 1;
- unsigned R_nW : 1;
+ unsigned R_W : 1;
unsigned S : 1;
unsigned P : 1;
- unsigned D_nA : 1;
+ unsigned D_A : 1;
unsigned CKE : 1;
unsigned SMP : 1;
};
extern __sfr __at (0xFCA) T2CON;
typedef union {
struct {
- unsigned T2CKPS : 2;
+ unsigned T2CKPS0 : 1;
+ unsigned T2CKPS1 : 1;
unsigned TMR2ON : 1;
- unsigned TOUTPS : 4;
+ unsigned TOUTPS0 : 1;
+ unsigned TOUTPS1 : 1;
+ unsigned TOUTPS2 : 1;
+ unsigned TOUTPS3 : 1;
unsigned : 1;
};
} __T2CON_t;
struct {
unsigned TMR1ON : 1;
unsigned TMR1CS : 1;
- unsigned nT1SYNC : 1;
+ unsigned NOT_T1SYNC : 1;
unsigned T1OSCEN : 1;
- unsigned T1CKPS : 2;
+ unsigned T1CKPS0 : 1;
+ unsigned T1CKPS1 : 1;
unsigned T1RUN : 1;
unsigned RD16 : 1;
};
extern __sfr __at (0xFD0) RCON;
typedef union {
struct {
- unsigned nBOR : 1;
- unsigned nPOR : 1;
- unsigned nPD : 1;
- unsigned nTO : 1;
- unsigned nRI : 1;
+ unsigned BOR : 1;
+ unsigned POR : 1;
+ unsigned PD : 1;
+ unsigned TO : 1;
+ unsigned RI : 1;
unsigned : 1;
unsigned : 1;
unsigned IPEN : 1;
extern __sfr __at (0xFD2) LVDCON;
typedef union {
struct {
- unsigned LVDL : 4;
+ unsigned LVDL0 : 1;
+ unsigned LVDL1 : 1;
+ unsigned LVDL2 : 1;
+ unsigned LVDL3 : 1;
unsigned LVDEN : 1;
unsigned IRVST : 1;
unsigned : 1;
extern __sfr __at (0xFD5) T0CON;
typedef union {
struct {
- unsigned T0PS : 4;
+ unsigned T0PS0 : 1;
+ unsigned T0PS1 : 1;
+ unsigned T0PS2 : 1;
+ unsigned T0PS3 : 1;
unsigned : 1;
unsigned : 1;
unsigned _16BIT : 1;
unsigned INTEDG2 : 1;
unsigned INTEDG1 : 1;
unsigned INTEDG0 : 1;
- unsigned nRBPU : 1;
+ unsigned RBPU : 1;
};
} __INTCON2_t;
extern volatile __INTCON2_t __at (0xFF1) INTCON2bits;
extern volatile __TOSU_t __at (0xFFF) TOSUbits;
/* Configuration register locations */
-#define CONFIG1H 0x300001
-#define CONFIG2L 0x300002
-#define CONFIG2H 0x300003
-#define CONFIG3L 0x300004
-#define CONFIG3H 0x300005
-#define CONFIG4L 0x300006
-#define CONFIG5L 0x300008
-#define CONFIG5H 0x300009
-#define CONFIG6L 0x30000A
-#define CONFIG6H 0x30000B
-#define CONFIG7L 0x30000C
-#define CONFIG7H 0x30000D
+#define __CONFIG1H 0x300001
+#define __CONFIG2L 0x300002
+#define __CONFIG2H 0x300003
+#define __CONFIG3L 0x300004
+#define __CONFIG3H 0x300005
+#define __CONFIG4L 0x300006
+#define __CONFIG5L 0x300008
+#define __CONFIG5H 0x300009
+#define __CONFIG6L 0x30000A
+#define __CONFIG6H 0x30000B
+#define __CONFIG7L 0x30000C
+#define __CONFIG7H 0x30000D
/* Oscillator 1H options */
struct {
unsigned TMR3ON : 1;
unsigned TMR3CS : 1;
- unsigned nT3SYNC : 1;
+ unsigned NOT_T3SYNC : 1;
unsigned T3CCP1 : 1;
- unsigned T3CKPS : 2;
+ unsigned T3CKPS0 : 1;
+ unsigned T3CKPS1 : 1;
unsigned T3CCP2 : 1;
unsigned RD16 : 1;
};
extern __sfr __at (0xFB4) CMCON;
typedef union {
struct {
- unsigned CM : 3;
+ unsigned CM0 : 1;
+ unsigned CM1 : 1;
+ unsigned CM2 : 1;
unsigned CIS : 1;
unsigned C1INV : 1;
unsigned C2INV : 1;
extern __sfr __at (0xFB5) CVRCON;
typedef union {
struct {
- unsigned CVR : 4;
+ unsigned CVR0 : 1;
+ unsigned CVR1 : 1;
+ unsigned CVR2 : 1;
+ unsigned CVR3 : 1;
unsigned CVRSS : 1;
unsigned CVRR : 1;
unsigned CVROE : 1;
extern __sfr __at (0xFB6) ECCP1AS;
typedef union {
struct {
- unsigned PSSBD : 2;
- unsigned PSSAC : 2;
- unsigned ECCPAS : 3;
+ unsigned PSSBD0 : 1;
+ unsigned PSSBD1 : 1;
+ unsigned PSSAC0 : 1;
+ unsigned PSSAC1 : 1;
+ unsigned ECCPAS0 : 1;
+ unsigned ECCPAS1 : 1;
+ unsigned ECCPAS2 : 1;
unsigned ECCPASE : 1;
};
} __ECCP1AS_t;
extern __sfr __at (0xFBA) CCP2CON;
typedef union {
struct {
- unsigned CCP2M : 4;
- unsigned DC2B : 2;
+ unsigned CCP2M0 : 1;
+ unsigned CCP2M1 : 1;
+ unsigned CCP2M2 : 1;
+ unsigned CCP2M3 : 1;
+ unsigned DC2B0 : 1;
+ unsigned DC2B1 : 1;
unsigned : 1;
unsigned : 1;
};
extern __sfr __at (0xFBD) ECCP1CON;
typedef union {
struct {
- unsigned CCP1M : 4;
- unsigned DC1B : 2;
- unsigned P1M : 2;
+ unsigned CCP1M0 : 1;
+ unsigned CCP1M1 : 1;
+ unsigned CCP1M2 : 1;
+ unsigned CCP1M3 : 1;
+ unsigned DC1B0 : 1;
+ unsigned DC1B1 : 1;
+ unsigned P1M0 : 1;
+ unsigned P1M1 : 1;
};
} __ECCP1CON_t;
extern volatile __ECCP1CON_t __at (0xFBD) ECCP1CONbits;
extern __sfr __at (0xFC0) ADCON2;
typedef union {
struct {
- unsigned ADCS : 3;
- unsigned ACQT : 3;
+ unsigned ADCS0 : 1;
+ unsigned ADCS1 : 1;
+ unsigned ADCS2 : 1;
+ unsigned ACQT0 : 1;
+ unsigned ACQT1 : 1;
+ unsigned ACQT2 : 1;
unsigned : 1;
unsigned ADFM : 1;
};
extern __sfr __at (0xFC1) ADCON1;
typedef union {
struct {
- unsigned PCFG : 4;
- unsigned VCFG : 2;
+ unsigned PCFG0 : 1;
+ unsigned PCFG1 : 1;
+ unsigned PCFG2 : 1;
+ unsigned PCFG3 : 1;
+ unsigned VCFG0 : 1;
+ unsigned VCFG1 : 1;
unsigned : 1;
unsigned : 1;
};
typedef union {
struct {
unsigned ADON : 1;
- unsigned GO_nDONE : 1;
- unsigned CHS : 4;
+ unsigned GO : 1;
+ unsigned CHS0 : 1;
+ unsigned CHS1 : 1;
+ unsigned CHS2 : 1;
+ unsigned CHS3 : 1;
unsigned : 1;
unsigned : 1;
};
extern __sfr __at (0xFC6) SSPCON1;
typedef union {
struct {
- unsigned SSPM : 4;
+ unsigned SSPM0 : 1;
+ unsigned SSPM1 : 1;
+ unsigned SSPM2 : 1;
+ unsigned SSPM3 : 1;
unsigned CKP : 1;
unsigned SSPEN : 1;
unsigned SSPOV : 1;
struct {
unsigned BF : 1;
unsigned UA : 1;
- unsigned R_nW : 1;
+ unsigned R_W : 1;
unsigned S : 1;
unsigned P : 1;
- unsigned D_nA : 1;
+ unsigned D_A : 1;
unsigned CKE : 1;
unsigned SMP : 1;
};
extern __sfr __at (0xFCA) T2CON;
typedef union {
struct {
- unsigned T2CKPS : 2;
+ unsigned T2CKPS0 : 1;
+ unsigned T2CKPS1 : 1;
unsigned TMR2ON : 1;
- unsigned TOUTPS : 4;
+ unsigned TOUTPS0 : 1;
+ unsigned TOUTPS1 : 1;
+ unsigned TOUTPS2 : 1;
+ unsigned TOUTPS3 : 1;
unsigned : 1;
};
} __T2CON_t;
struct {
unsigned TMR1ON : 1;
unsigned TMR1CS : 1;
- unsigned nT1SYNC : 1;
+ unsigned NOT_T1SYNC : 1;
unsigned T1OSCEN : 1;
- unsigned T1CKPS : 2;
+ unsigned T1CKPS0 : 1;
+ unsigned T1CKPS1 : 1;
unsigned T1RUN : 1;
unsigned RD16 : 1;
};
extern __sfr __at (0xFD0) RCON;
typedef union {
struct {
- unsigned nBOR : 1;
- unsigned nPOR : 1;
- unsigned nPD : 1;
- unsigned nTO : 1;
- unsigned nRI : 1;
+ unsigned BOR : 1;
+ unsigned POR : 1;
+ unsigned PD : 1;
+ unsigned TO : 1;
+ unsigned RI : 1;
unsigned : 1;
unsigned SBOREN : 1;
unsigned IPEN : 1;
extern __sfr __at (0xFD2) HLVDCON;
typedef union {
struct {
- unsigned HLVDL : 4;
+ unsigned HLVDL0 : 1;
+ unsigned HLVDL1 : 1;
+ unsigned HLVDL2 : 1;
+ unsigned HLVDL3 : 1;
unsigned HLVDEN : 1;
unsigned IRVST : 1;
unsigned : 1;
extern __sfr __at (0xFD5) T0CON;
typedef union {
struct {
- unsigned T0PS : 3;
+ unsigned T0PS0 : 1;
+ unsigned T0PS1 : 1;
+ unsigned T0PS2 : 1;
unsigned PSA : 1;
unsigned T0SE : 1;
unsigned T0CS : 1;
unsigned INTEDG2 : 1;
unsigned INTEDG1 : 1;
unsigned INTEDG0 : 1;
- unsigned nRBPU : 1;
+ unsigned RBPU : 1;
};
} __INTCON2_t;
extern volatile __INTCON2_t __at (0xFF1) INTCON2bits;
extern volatile __TOSU_t __at (0xFFF) TOSUbits;
/* Configuration register locations */
-#define CONFIG1L 0x300000
-#define CONFIG1H 0x300001
-#define CONFIG2L 0x300002
-#define CONFIG2H 0x300003
-#define CONFIG3H 0x300005
-#define CONFIG4L 0x300006
-#define CONFIG5L 0x300008
-#define CONFIG5H 0x300009
-#define CONFIG6L 0x30000A
-#define CONFIG6H 0x30000B
-#define CONFIG7L 0x30000C
-#define CONFIG7H 0x30000D
+#define __CONFIG1L 0x300000
+#define __CONFIG1H 0x300001
+#define __CONFIG2L 0x300002
+#define __CONFIG2H 0x300003
+#define __CONFIG3H 0x300005
+#define __CONFIG4L 0x300006
+#define __CONFIG5L 0x300008
+#define __CONFIG5H 0x300009
+#define __CONFIG6L 0x30000A
+#define __CONFIG6H 0x30000B
+#define __CONFIG7L 0x30000C
+#define __CONFIG7H 0x30000D
/* Full-Speed USB Clock Source Selection 1L options */
struct {
unsigned TMR3ON : 1;
unsigned TMR3CS : 1;
- unsigned nT3SYNC : 1;
+ unsigned NOT_T3SYNC : 1;
unsigned T3CCP1 : 1;
- unsigned T3CKPS : 2;
+ unsigned T3CKPS0 : 1;
+ unsigned T3CKPS1 : 1;
unsigned T3CCP2 : 1;
unsigned RD16 : 1;
};
extern __sfr __at (0xFB4) CMCON;
typedef union {
struct {
- unsigned CM : 3;
+ unsigned CM0 : 1;
+ unsigned CM1 : 1;
+ unsigned CM2 : 1;
unsigned CIS : 1;
unsigned C1INV : 1;
unsigned C2INV : 1;
extern __sfr __at (0xFB5) CVRCON;
typedef union {
struct {
- unsigned CVR : 4;
+ unsigned CVR0 : 1;
+ unsigned CVR1 : 1;
+ unsigned CVR2 : 1;
+ unsigned CVR3 : 1;
unsigned CVRSS : 1;
unsigned CVRR : 1;
unsigned CVROE : 1;
extern __sfr __at (0xFB6) ECCPAS1;
typedef union {
struct {
- unsigned PSSBD : 2;
- unsigned PSSAC : 2;
- unsigned ECCPAS : 3;
+ unsigned PSSBD0 : 1;
+ unsigned PSSBD1 : 1;
+ unsigned PSSAC0 : 1;
+ unsigned PSSAC1 : 1;
+ unsigned ECCPAS0 : 1;
+ unsigned ECCPAS1 : 1;
+ unsigned ECCPAS2 : 1;
unsigned ECCPASE : 1;
};
} __ECCPAS1_t;
extern __sfr __at (0xFBA) CCP2CON;
typedef union {
struct {
- unsigned CCP2M : 4;
- unsigned DC2B : 2;
+ unsigned CCP2M0 : 1;
+ unsigned CCP2M1 : 1;
+ unsigned CCP2M2 : 1;
+ unsigned CCP2M3 : 1;
+ unsigned DC2B0 : 1;
+ unsigned DC2B1 : 1;
unsigned : 1;
unsigned : 1;
};
extern __sfr __at (0xFBD) ECCP1CON;
typedef union {
struct {
- unsigned CCP1M : 4;
- unsigned DC1B : 2;
- unsigned P1M : 2;
+ unsigned CCP1M0 : 1;
+ unsigned CCP1M1 : 1;
+ unsigned CCP1M2 : 1;
+ unsigned CCP1M3 : 1;
+ unsigned DC1B0 : 1;
+ unsigned DC1B1 : 1;
+ unsigned P1M0 : 1;
+ unsigned P1M1 : 1;
};
} __ECCP1CON_t;
extern volatile __ECCP1CON_t __at (0xFBD) ECCP1CONbits;
extern __sfr __at (0xFC0) ADCON2;
typedef union {
struct {
- unsigned ADCS : 3;
- unsigned ACQT : 3;
+ unsigned ADCS0 : 1;
+ unsigned ADCS1 : 1;
+ unsigned ADCS2 : 1;
+ unsigned ACQT0 : 1;
+ unsigned ACQT1 : 1;
+ unsigned ACQT2 : 1;
unsigned : 1;
unsigned ADFM : 1;
};
extern __sfr __at (0xFC1) ADCON1;
typedef union {
struct {
- unsigned PCFG : 4;
- unsigned VCFG : 2;
+ unsigned PCFG0 : 1;
+ unsigned PCFG1 : 1;
+ unsigned PCFG2 : 1;
+ unsigned PCFG3 : 1;
+ unsigned VCFG0 : 1;
+ unsigned VCFG1 : 1;
unsigned : 1;
unsigned : 1;
};
typedef union {
struct {
unsigned ADON : 1;
- unsigned GO_nDONE : 1;
- unsigned CHS : 4;
+ unsigned GO : 1;
+ unsigned CHS0 : 1;
+ unsigned CHS1 : 1;
+ unsigned CHS2 : 1;
+ unsigned CHS3 : 1;
unsigned : 1;
unsigned : 1;
};
extern __sfr __at (0xFC6) SSPCON1;
typedef union {
struct {
- unsigned SSPM : 4;
+ unsigned SSPM0 : 1;
+ unsigned SSPM1 : 1;
+ unsigned SSPM2 : 1;
+ unsigned SSPM3 : 1;
unsigned CKP : 1;
unsigned SSPEN : 1;
unsigned SSPOV : 1;
struct {
unsigned BF : 1;
unsigned UA : 1;
- unsigned R_nW : 1;
+ unsigned R_W : 1;
unsigned S : 1;
unsigned P : 1;
- unsigned D_nA : 1;
+ unsigned D_A : 1;
unsigned CKE : 1;
unsigned SMP : 1;
};
extern __sfr __at (0xFCA) T2CON;
typedef union {
struct {
- unsigned T2CKPS : 2;
+ unsigned T2CKPS0 : 1;
+ unsigned T2CKPS1 : 1;
unsigned TMR2ON : 1;
- unsigned TOUTPS : 4;
+ unsigned TOUTPS0 : 1;
+ unsigned TOUTPS1 : 1;
+ unsigned TOUTPS2 : 1;
+ unsigned TOUTPS3 : 1;
unsigned : 1;
};
} __T2CON_t;
struct {
unsigned TMR1ON : 1;
unsigned TMR1CS : 1;
- unsigned nT1SYNC : 1;
+ unsigned NOT_T1SYNC : 1;
unsigned T1OSCEN : 1;
- unsigned T1CKPS : 2;
+ unsigned T1CKPS0 : 1;
+ unsigned T1CKPS1 : 1;
unsigned T1RUN : 1;
unsigned RD16 : 1;
};
extern __sfr __at (0xFD0) RCON;
typedef union {
struct {
- unsigned nBOR : 1;
- unsigned nPOR : 1;
- unsigned nPD : 1;
- unsigned nTO : 1;
- unsigned nRI : 1;
+ unsigned BOR : 1;
+ unsigned POR : 1;
+ unsigned PD : 1;
+ unsigned TO : 1;
+ unsigned RI : 1;
unsigned : 1;
unsigned SBOREN : 1;
unsigned IPEN : 1;
extern __sfr __at (0xFD2) LVDCON;
typedef union {
struct {
- unsigned LVDL : 4;
+ unsigned LVDL0 : 1;
+ unsigned LVDL1 : 1;
+ unsigned LVDL2 : 1;
+ unsigned LVDL3 : 1;
unsigned LVDEN : 1;
unsigned IRVST : 1;
unsigned : 1;
extern __sfr __at (0xFD5) T0CON;
typedef union {
struct {
- unsigned T0PS : 3;
+ unsigned T0PS0 : 1;
+ unsigned T0PS1 : 1;
+ unsigned T0PS2 : 1;
unsigned PSA : 1;
unsigned T0SE : 1;
unsigned T0CS : 1;
unsigned RBIE : 1;
unsigned INT0IE : 1;
unsigned TMR0IE : 1;
- unsigned PEIE_GIEL : 1;
- unsigned GIE_GIEH : 1;
- };
- struct {
- unsigned : 1;
- unsigned : 1;
- unsigned : 1;
- unsigned : 1;
- unsigned : 1;
- unsigned : 1;
unsigned PEIE : 1;
unsigned GIE : 1;
};
extern volatile __TOSU_t __at (0xFFF) TOSUbits;
/* Configuration register locations */
-#define CONFIG1H 0x300001
-#define CONFIG2L 0x300002
-#define CONFIG2H 0x300003
-#define CONFIG3H 0x300005
-#define CONFIG4L 0x300006
-#define CONFIG5L 0x300008
-#define CONFIG5H 0x300009
-#define CONFIG6L 0x30000A
-#define CONFIG6H 0x30000B
-#define CONFIG7L 0x30000C
-#define CONFIG7H 0x30000D
+#define __CONFIG1H 0x300001
+#define __CONFIG2L 0x300002
+#define __CONFIG2H 0x300003
+#define __CONFIG3H 0x300005
+#define __CONFIG4L 0x300006
+#define __CONFIG5L 0x300008
+#define __CONFIG5H 0x300009
+#define __CONFIG6L 0x30000A
+#define __CONFIG6H 0x30000B
+#define __CONFIG7L 0x30000C
+#define __CONFIG7H 0x30000D
/* Oscillator 1H options */
absSym *absS;
value *addr;
+ if (!symname || !location) {
+ fprintf (stderr, "%s:%d: #pragma code [symbol] [location] -- symbol or location missing\n", filename, lineno-1);
+ return 1; /* considered an error */
+ }
+
absS = Safe_calloc(1, sizeof(absSym));
sprintf(absS->name, "_%s", symname);
sectName *snam;
int found=0;
+ if (!symname || !sectname) {
+ fprintf (stderr, "%s:%d: #pragma udata [section-name] [symbol] -- section-name or symbol missing!\n", filename, lineno-1);
+ return 1; /* considered an error */
+ }
+
while(symname) {
ssym = Safe_calloc(1, sizeof(sectSym));
ssym->name = Safe_calloc(1, strlen(symname)+2);