* device/lib/pic/libdev/devices.txt: device list for mkall.sh
[fw/sdcc] / device / include / pic / pic16f685.h
index c24b771babde38f68d9308703b0c8394d45b81c7..4462618260159f34191ebfd4ace2051d61545d46 100644 (file)
@@ -4,7 +4,7 @@
 //
 // This header file was automatically generated by:
 //
-//     inc2h.pl V1.6
+//     inc2h.pl V4514
 //
 //     Copyright (c) 2002, Kevin L. Pauba, All Rights Reserved
 //
 // Memory organization.
 //
 
-#pragma memmap INDF_ADDR INDF_ADDR SFR 0x000   // INDF
-#pragma memmap TMR0_ADDR TMR0_ADDR SFR 0x000   // TMR0
-#pragma memmap PCL_ADDR PCL_ADDR SFR 0x000     // PCL
-#pragma memmap STATUS_ADDR STATUS_ADDR SFR 0x000       // STATUS
-#pragma memmap FSR_ADDR FSR_ADDR SFR 0x000     // FSR
-#pragma memmap PORTA_ADDR PORTA_ADDR SFR 0x000 // PORTA
-#pragma memmap PORTB_ADDR PORTB_ADDR SFR 0x000 // PORTB
-#pragma memmap PORTC_ADDR PORTC_ADDR SFR 0x000 // PORTC
-#pragma memmap PCLATH_ADDR PCLATH_ADDR SFR 0x000       // PCLATH
-#pragma memmap INTCON_ADDR INTCON_ADDR SFR 0x000       // INTCON
-#pragma memmap PIR1_ADDR PIR1_ADDR SFR 0x000   // PIR1
-#pragma memmap PIR2_ADDR PIR2_ADDR SFR 0x000   // PIR2
-#pragma memmap TMR1L_ADDR TMR1L_ADDR SFR 0x000 // TMR1L
-#pragma memmap TMR1H_ADDR TMR1H_ADDR SFR 0x000 // TMR1H
-#pragma memmap T1CON_ADDR T1CON_ADDR SFR 0x000 // T1CON
-#pragma memmap TMR2_ADDR TMR2_ADDR SFR 0x000   // TMR2
-#pragma memmap T2CON_ADDR T2CON_ADDR SFR 0x000 // T2CON
-#pragma memmap CCPR1L_ADDR CCPR1L_ADDR SFR 0x000       // CCPR1L
-#pragma memmap CCPR1H_ADDR CCPR1H_ADDR SFR 0x000       // CCPR1H
-#pragma memmap CCP1CON_ADDR CCP1CON_ADDR SFR 0x000     // CCP1CON
-#pragma memmap PWM1CON_ADDR PWM1CON_ADDR SFR 0x000     // PWM1CON
-#pragma memmap ECCPAS_ADDR ECCPAS_ADDR SFR 0x000       // ECCPAS
-#pragma memmap ADRESH_ADDR ADRESH_ADDR SFR 0x000       // ADRESH
-#pragma memmap ADCON0_ADDR ADCON0_ADDR SFR 0x000       // ADCON0
-#pragma memmap OPTION_REG_ADDR OPTION_REG_ADDR SFR 0x000       // OPTION_REG
-#pragma memmap TRISA_ADDR TRISA_ADDR SFR 0x000 // TRISA
-#pragma memmap TRISB_ADDR TRISB_ADDR SFR 0x000 // TRISB
-#pragma memmap TRISC_ADDR TRISC_ADDR SFR 0x000 // TRISC
-#pragma memmap PIE1_ADDR PIE1_ADDR SFR 0x000   // PIE1
-#pragma memmap PIE2_ADDR PIE2_ADDR SFR 0x000   // PIE2
-#pragma memmap PCON_ADDR PCON_ADDR SFR 0x000   // PCON
-#pragma memmap OSCCON_ADDR OSCCON_ADDR SFR 0x000       // OSCCON
-#pragma memmap OSCTUNE_ADDR OSCTUNE_ADDR SFR 0x000     // OSCTUNE
-#pragma memmap PR2_ADDR PR2_ADDR SFR 0x000     // PR2
-#pragma memmap WPU_ADDR WPU_ADDR SFR 0x000     // WPU
-#pragma memmap WPUA_ADDR WPUA_ADDR SFR 0x000   // WPUA
-#pragma memmap IOC_ADDR IOC_ADDR SFR 0x000     // IOC
-#pragma memmap IOCA_ADDR IOCA_ADDR SFR 0x000   // IOCA
-#pragma memmap WDTCON_ADDR WDTCON_ADDR SFR 0x000       // WDTCON
-#pragma memmap ADRESL_ADDR ADRESL_ADDR SFR 0x000       // ADRESL
-#pragma memmap ADCON1_ADDR ADCON1_ADDR SFR 0x000       // ADCON1
-#pragma memmap EEDATA_ADDR EEDATA_ADDR SFR 0x000       // EEDATA
-#pragma memmap EEADR_ADDR EEADR_ADDR SFR 0x000 // EEADR
-#pragma memmap EEDATH_ADDR EEDATH_ADDR SFR 0x000       // EEDATH
-#pragma memmap EEADRH_ADDR EEADRH_ADDR SFR 0x000       // EEADRH
-#pragma memmap WPUB_ADDR WPUB_ADDR SFR 0x000   // WPUB
-#pragma memmap IOCB_ADDR IOCB_ADDR SFR 0x000   // IOCB
-#pragma memmap VRCON_ADDR VRCON_ADDR SFR 0x000 // VRCON
-#pragma memmap CM1CON0_ADDR CM1CON0_ADDR SFR 0x000     // CM1CON0
-#pragma memmap CM2CON0_ADDR CM2CON0_ADDR SFR 0x000     // CM2CON0
-#pragma memmap CM2CON1_ADDR CM2CON1_ADDR SFR 0x000     // CM2CON1
-#pragma memmap ANSEL_ADDR ANSEL_ADDR SFR 0x000 // ANSEL
-#pragma memmap ANSELH_ADDR ANSELH_ADDR SFR 0x000       // ANSELH
-#pragma memmap EECON1_ADDR EECON1_ADDR SFR 0x000       // EECON1
-#pragma memmap EECON2_ADDR EECON2_ADDR SFR 0x000       // EECON2
-#pragma memmap PSTRCON_ADDR PSTRCON_ADDR SFR 0x000     // PSTRCON
-#pragma memmap SRCON_ADDR SRCON_ADDR SFR 0x000 // SRCON
 
 
 //         LIST
 
 //----- Register Files------------------------------------------------------
 
-extern data __at (INDF_ADDR) volatile char      INDF;
-extern sfr  __at (TMR0_ADDR)                    TMR0;
-extern data __at (PCL_ADDR) volatile char       PCL;
-extern sfr  __at (STATUS_ADDR)                  STATUS;
-extern sfr  __at (FSR_ADDR)                     FSR;
-extern sfr  __at (PORTA_ADDR)                   PORTA;
-extern sfr  __at (PORTB_ADDR)                   PORTB;
-extern sfr  __at (PORTC_ADDR)                   PORTC;
+extern __data __at (INDF_ADDR) volatile char      INDF;
+extern __sfr  __at (TMR0_ADDR)                    TMR0;
+extern __data __at (PCL_ADDR) volatile char       PCL;
+extern __sfr  __at (STATUS_ADDR)                  STATUS;
+extern __sfr  __at (FSR_ADDR)                     FSR;
+extern __sfr  __at (PORTA_ADDR)                   PORTA;
+extern __sfr  __at (PORTB_ADDR)                   PORTB;
+extern __sfr  __at (PORTC_ADDR)                   PORTC;
 
-extern sfr  __at (PCLATH_ADDR)                  PCLATH;
-extern sfr  __at (INTCON_ADDR)                  INTCON;
-extern sfr  __at (PIR1_ADDR)                    PIR1;
-extern sfr  __at (PIR2_ADDR)                    PIR2;
-extern sfr  __at (TMR1L_ADDR)                   TMR1L;         
-extern sfr  __at (TMR1H_ADDR)                   TMR1H;         
-extern sfr  __at (T1CON_ADDR)                   T1CON;         
-extern sfr  __at (TMR2_ADDR)                    TMR2;
-extern sfr  __at (T2CON_ADDR)                   T2CON;
+extern __sfr  __at (PCLATH_ADDR)                  PCLATH;
+extern __sfr  __at (INTCON_ADDR)                  INTCON;
+extern __sfr  __at (PIR1_ADDR)                    PIR1;
+extern __sfr  __at (PIR2_ADDR)                    PIR2;
+extern __sfr  __at (TMR1L_ADDR)                   TMR1L;               
+extern __sfr  __at (TMR1H_ADDR)                   TMR1H;               
+extern __sfr  __at (T1CON_ADDR)                   T1CON;               
+extern __sfr  __at (TMR2_ADDR)                    TMR2;
+extern __sfr  __at (T2CON_ADDR)                   T2CON;
 
 
-extern sfr  __at (CCPR1L_ADDR)                  CCPR1L;
-extern sfr  __at (CCPR1H_ADDR)                  CCPR1H;
-extern sfr  __at (CCP1CON_ADDR)                 CCP1CON;
+extern __sfr  __at (CCPR1L_ADDR)                  CCPR1L;
+extern __sfr  __at (CCPR1H_ADDR)                  CCPR1H;
+extern __sfr  __at (CCP1CON_ADDR)                 CCP1CON;
 
 
-extern sfr  __at (PWM1CON_ADDR)                 PWM1CON;
-extern sfr  __at (ECCPAS_ADDR)                  ECCPAS;
-extern sfr  __at (ADRESH_ADDR)                  ADRESH;                
-extern sfr  __at (ADCON0_ADDR)                  ADCON0;                
+extern __sfr  __at (PWM1CON_ADDR)                 PWM1CON;
+extern __sfr  __at (ECCPAS_ADDR)                  ECCPAS;
+extern __sfr  __at (ADRESH_ADDR)                  ADRESH;              
+extern __sfr  __at (ADCON0_ADDR)                  ADCON0;              
 
 
-extern sfr  __at (OPTION_REG_ADDR)              OPTION_REG;
+extern __sfr  __at (OPTION_REG_ADDR)              OPTION_REG;
 
-extern sfr  __at (TRISA_ADDR)                   TRISA;
-extern sfr  __at (TRISB_ADDR)                   TRISB;
-extern sfr  __at (TRISC_ADDR)                   TRISC;
+extern __sfr  __at (TRISA_ADDR)                   TRISA;
+extern __sfr  __at (TRISB_ADDR)                   TRISB;
+extern __sfr  __at (TRISC_ADDR)                   TRISC;
 
-extern sfr  __at (PIE1_ADDR)                    PIE1;
-extern sfr  __at (PIE2_ADDR)                    PIE2;
-extern sfr  __at (PCON_ADDR)                    PCON;
-extern sfr  __at (OSCCON_ADDR)                  OSCCON;
-extern sfr  __at (OSCTUNE_ADDR)                 OSCTUNE;
+extern __sfr  __at (PIE1_ADDR)                    PIE1;
+extern __sfr  __at (PIE2_ADDR)                    PIE2;
+extern __sfr  __at (PCON_ADDR)                    PCON;
+extern __sfr  __at (OSCCON_ADDR)                  OSCCON;
+extern __sfr  __at (OSCTUNE_ADDR)                 OSCTUNE;
 
-extern sfr  __at (PR2_ADDR)                     PR2;
+extern __sfr  __at (PR2_ADDR)                     PR2;
 
 
-extern sfr  __at (WPU_ADDR)                     WPU;
-extern sfr  __at (WPUA_ADDR)                    WPUA;
-extern sfr  __at (IOC_ADDR)                     IOC;
-extern sfr  __at (IOCA_ADDR)                    IOCA;
-extern sfr  __at (WDTCON_ADDR)                  WDTCON;
+extern __sfr  __at (WPU_ADDR)                     WPU;
+extern __sfr  __at (WPUA_ADDR)                    WPUA;
+extern __sfr  __at (IOC_ADDR)                     IOC;
+extern __sfr  __at (IOCA_ADDR)                    IOCA;
+extern __sfr  __at (WDTCON_ADDR)                  WDTCON;
 
 
 
-extern sfr  __at (ADRESL_ADDR)                  ADRESL;                
-extern sfr  __at (ADCON1_ADDR)                  ADCON1;
+extern __sfr  __at (ADRESL_ADDR)                  ADRESL;              
+extern __sfr  __at (ADCON1_ADDR)                  ADCON1;
 
 
 
-extern sfr  __at (EEDATA_ADDR)                  EEDATA;
-extern sfr  __at (EEADR_ADDR)                   EEADR;
-extern sfr  __at (EEDATH_ADDR)                  EEDATH;
-extern sfr  __at (EEADRH_ADDR)                  EEADRH;
+extern __sfr  __at (EEDATA_ADDR)                  EEDATA;
+extern __sfr  __at (EEADR_ADDR)                   EEADR;
+extern __sfr  __at (EEDATH_ADDR)                  EEDATH;
+extern __sfr  __at (EEADRH_ADDR)                  EEADRH;
 
 
-extern sfr  __at (WPUB_ADDR)                    WPUB;
-extern sfr  __at (IOCB_ADDR)                    IOCB;
+extern __sfr  __at (WPUB_ADDR)                    WPUB;
+extern __sfr  __at (IOCB_ADDR)                    IOCB;
 
-extern sfr  __at (VRCON_ADDR)                   VRCON;
-extern sfr  __at (CM1CON0_ADDR)                 CM1CON0;
-extern sfr  __at (CM2CON0_ADDR)                 CM2CON0;
-extern sfr  __at (CM2CON1_ADDR)                 CM2CON1;
+extern __sfr  __at (VRCON_ADDR)                   VRCON;
+extern __sfr  __at (CM1CON0_ADDR)                 CM1CON0;
+extern __sfr  __at (CM2CON0_ADDR)                 CM2CON0;
+extern __sfr  __at (CM2CON1_ADDR)                 CM2CON1;
 
-extern sfr  __at (ANSEL_ADDR)                   ANSEL;
-extern sfr  __at (ANSELH_ADDR)                  ANSELH;
+extern __sfr  __at (ANSEL_ADDR)                   ANSEL;
+extern __sfr  __at (ANSELH_ADDR)                  ANSELH;
 
-extern sfr  __at (EECON1_ADDR)                  EECON1;
-extern sfr  __at (EECON2_ADDR)                  EECON2;
+extern __sfr  __at (EECON1_ADDR)                  EECON1;
+extern __sfr  __at (EECON2_ADDR)                  EECON2;
 
 
-extern sfr  __at (PSTRCON_ADDR)                 PSTRCON;
-extern sfr  __at (SRCON_ADDR)                   SRCON;
+extern __sfr  __at (PSTRCON_ADDR)                 PSTRCON;
+extern __sfr  __at (SRCON_ADDR)                   SRCON;
 
 
 
@@ -486,6 +429,49 @@ extern volatile __ADCON0_bits_t __at(ADCON0_ADDR) ADCON0_bits;
 #define VCFG                 ADCON0_bits.VCFG
 #define ADFM                 ADCON0_bits.ADFM
 
+// ----- ADCON1 bits --------------------
+typedef union {
+  struct {
+    unsigned char :1;
+    unsigned char :1;
+    unsigned char :1;
+    unsigned char :1;
+    unsigned char ADCS0:1;
+    unsigned char ADCS1:1;
+    unsigned char ADCS2:1;
+    unsigned char :1;
+  };
+} __ADCON1_bits_t;
+extern volatile __ADCON1_bits_t __at(ADCON1_ADDR) ADCON1_bits;
+
+#define ADCS0                ADCON1_bits.ADCS0
+#define ADCS1                ADCON1_bits.ADCS1
+#define ADCS2                ADCON1_bits.ADCS2
+
+// ----- ANSEL bits --------------------
+typedef union {
+  struct {
+    unsigned char ANS0:1;
+    unsigned char ANS1:1;
+    unsigned char ANS2:1;
+    unsigned char ANS3:1;
+    unsigned char ANS4:1;
+    unsigned char ANS5:1;
+    unsigned char ANS6:1;
+    unsigned char ANS7:1;
+  };
+} __ANSEL_bits_t;
+extern volatile __ANSEL_bits_t __at(ANSEL_ADDR) ANSEL_bits;
+
+#define ANS0                 ANSEL_bits.ANS0
+#define ANS1                 ANSEL_bits.ANS1
+#define ANS2                 ANSEL_bits.ANS2
+#define ANS3                 ANSEL_bits.ANS3
+#define ANS4                 ANSEL_bits.ANS4
+#define ANS5                 ANSEL_bits.ANS5
+#define ANS6                 ANSEL_bits.ANS6
+#define ANS7                 ANSEL_bits.ANS7
+
 // ----- CCP1CON bits --------------------
 typedef union {
   struct {
@@ -561,74 +547,20 @@ typedef union {
   struct {
     unsigned char C2SYNC:1;
     unsigned char T1GSS:1;
-    unsigned char ANS2:1;
-    unsigned char ANS3:1;
-    unsigned char ANS4:1;
-    unsigned char ANS5:1;
-    unsigned char MC2OUT:1;
-    unsigned char MC1OUT:1;
-  };
-  struct {
-    unsigned char ANS0:1;
-    unsigned char ANS1:1;
-    unsigned char WREN:1;
-    unsigned char WRERR:1;
-    unsigned char STRSYNC:1;
-    unsigned char C1SEN:1;
-    unsigned char ANS6:1;
-    unsigned char ANS7:1;
-  };
-  struct {
-    unsigned char RD:1;
-    unsigned char WR:1;
-    unsigned char STRC:1;
-    unsigned char STRD:1;
-    unsigned char C2REN:1;
     unsigned char :1;
-    unsigned char SR0:1;
-    unsigned char EEPGD:1;
-  };
-  struct {
-    unsigned char STRA:1;
-    unsigned char STRB:1;
-    unsigned char PULSR:1;
-    unsigned char PULSS:1;
     unsigned char :1;
     unsigned char :1;
     unsigned char :1;
-    unsigned char SR1:1;
+    unsigned char MC2OUT:1;
+    unsigned char MC1OUT:1;
   };
 } __CM2CON1_bits_t;
 extern volatile __CM2CON1_bits_t __at(CM2CON1_ADDR) CM2CON1_bits;
 
 #define C2SYNC               CM2CON1_bits.C2SYNC
-#define ANS0                 CM2CON1_bits.ANS0
-#define RD                   CM2CON1_bits.RD
-#define STRA                 CM2CON1_bits.STRA
 #define T1GSS                CM2CON1_bits.T1GSS
-#define ANS1                 CM2CON1_bits.ANS1
-#define WR                   CM2CON1_bits.WR
-#define STRB                 CM2CON1_bits.STRB
-#define ANS2                 CM2CON1_bits.ANS2
-#define WREN                 CM2CON1_bits.WREN
-#define STRC                 CM2CON1_bits.STRC
-#define PULSR                CM2CON1_bits.PULSR
-#define ANS3                 CM2CON1_bits.ANS3
-#define WRERR                CM2CON1_bits.WRERR
-#define STRD                 CM2CON1_bits.STRD
-#define PULSS                CM2CON1_bits.PULSS
-#define ANS4                 CM2CON1_bits.ANS4
-#define STRSYNC              CM2CON1_bits.STRSYNC
-#define C2REN                CM2CON1_bits.C2REN
-#define ANS5                 CM2CON1_bits.ANS5
-#define C1SEN                CM2CON1_bits.C1SEN
 #define MC2OUT               CM2CON1_bits.MC2OUT
-#define ANS6                 CM2CON1_bits.ANS6
-#define SR0                  CM2CON1_bits.SR0
 #define MC1OUT               CM2CON1_bits.MC1OUT
-#define ANS7                 CM2CON1_bits.ANS7
-#define EEPGD                CM2CON1_bits.EEPGD
-#define SR1                  CM2CON1_bits.SR1
 
 // ----- ECCPAS bits --------------------
 typedef union {
@@ -654,6 +586,27 @@ extern volatile __ECCPAS_bits_t __at(ECCPAS_ADDR) ECCPAS_bits;
 #define ECCPAS2              ECCPAS_bits.ECCPAS2
 #define ECCPASE              ECCPAS_bits.ECCPASE
 
+// ----- EECON1 bits --------------------
+typedef union {
+  struct {
+    unsigned char RD:1;
+    unsigned char WR:1;
+    unsigned char WREN:1;
+    unsigned char WRERR:1;
+    unsigned char :1;
+    unsigned char :1;
+    unsigned char :1;
+    unsigned char EEPGD:1;
+  };
+} __EECON1_bits_t;
+extern volatile __EECON1_bits_t __at(EECON1_ADDR) EECON1_bits;
+
+#define RD                   EECON1_bits.RD
+#define WR                   EECON1_bits.WR
+#define WREN                 EECON1_bits.WREN
+#define WRERR                EECON1_bits.WRERR
+#define EEPGD                EECON1_bits.EEPGD
+
 // ----- INTCON bits --------------------
 typedef union {
   struct {
@@ -678,6 +631,70 @@ extern volatile __INTCON_bits_t __at(INTCON_ADDR) INTCON_bits;
 #define PEIE                 INTCON_bits.PEIE
 #define GIE                  INTCON_bits.GIE
 
+// ----- IOC bits --------------------
+typedef union {
+  struct {
+    unsigned char IOC0:1;
+    unsigned char IOC1:1;
+    unsigned char IOC2:1;
+    unsigned char IOC3:1;
+    unsigned char IOC4:1;
+    unsigned char IOC5:1;
+    unsigned char :1;
+    unsigned char :1;
+  };
+} __IOC_bits_t;
+extern volatile __IOC_bits_t __at(IOC_ADDR) IOC_bits;
+
+#define IOC0                 IOC_bits.IOC0
+#define IOC1                 IOC_bits.IOC1
+#define IOC2                 IOC_bits.IOC2
+#define IOC3                 IOC_bits.IOC3
+#define IOC4                 IOC_bits.IOC4
+#define IOC5                 IOC_bits.IOC5
+
+// ----- IOCA bits --------------------
+typedef union {
+  struct {
+    unsigned char IOCA0:1;
+    unsigned char IOCA1:1;
+    unsigned char IOCA2:1;
+    unsigned char IOCA3:1;
+    unsigned char IOCA4:1;
+    unsigned char IOCA5:1;
+    unsigned char :1;
+    unsigned char :1;
+  };
+} __IOCA_bits_t;
+extern volatile __IOCA_bits_t __at(IOCA_ADDR) IOCA_bits;
+
+#define IOCA0                IOCA_bits.IOCA0
+#define IOCA1                IOCA_bits.IOCA1
+#define IOCA2                IOCA_bits.IOCA2
+#define IOCA3                IOCA_bits.IOCA3
+#define IOCA4                IOCA_bits.IOCA4
+#define IOCA5                IOCA_bits.IOCA5
+
+// ----- IOCB bits --------------------
+typedef union {
+  struct {
+    unsigned char :1;
+    unsigned char :1;
+    unsigned char :1;
+    unsigned char :1;
+    unsigned char IOCB4:1;
+    unsigned char IOCB5:1;
+    unsigned char IOCB6:1;
+    unsigned char IOCB7:1;
+  };
+} __IOCB_bits_t;
+extern volatile __IOCB_bits_t __at(IOCB_ADDR) IOCB_bits;
+
+#define IOCB4                IOCB_bits.IOCB4
+#define IOCB5                IOCB_bits.IOCB5
+#define IOCB6                IOCB_bits.IOCB6
+#define IOCB7                IOCB_bits.IOCB7
+
 // ----- OPTION_REG bits --------------------
 typedef union {
   struct {
@@ -733,36 +750,6 @@ typedef union {
     unsigned char TUN2:1;
     unsigned char TUN3:1;
     unsigned char TUN4:1;
-    unsigned char WPUA5:1;
-    unsigned char :1;
-    unsigned char :1;
-  };
-  struct {
-    unsigned char WPUA0:1;
-    unsigned char WPUA1:1;
-    unsigned char WPUA2:1;
-    unsigned char IOC3:1;
-    unsigned char WPUA4:1;
-    unsigned char IOC5:1;
-    unsigned char :1;
-    unsigned char :1;
-  };
-  struct {
-    unsigned char IOC0:1;
-    unsigned char IOC1:1;
-    unsigned char IOC2:1;
-    unsigned char IOCA3:1;
-    unsigned char IOC4:1;
-    unsigned char IOCA5:1;
-    unsigned char :1;
-    unsigned char :1;
-  };
-  struct {
-    unsigned char IOCA0:1;
-    unsigned char IOCA1:1;
-    unsigned char IOCA2:1;
-    unsigned char :1;
-    unsigned char IOCA4:1;
     unsigned char :1;
     unsigned char :1;
     unsigned char :1;
@@ -771,27 +758,10 @@ typedef union {
 extern volatile __OSCTUNE_bits_t __at(OSCTUNE_ADDR) OSCTUNE_bits;
 
 #define TUN0                 OSCTUNE_bits.TUN0
-#define WPUA0                OSCTUNE_bits.WPUA0
-#define IOC0                 OSCTUNE_bits.IOC0
-#define IOCA0                OSCTUNE_bits.IOCA0
 #define TUN1                 OSCTUNE_bits.TUN1
-#define WPUA1                OSCTUNE_bits.WPUA1
-#define IOC1                 OSCTUNE_bits.IOC1
-#define IOCA1                OSCTUNE_bits.IOCA1
 #define TUN2                 OSCTUNE_bits.TUN2
-#define WPUA2                OSCTUNE_bits.WPUA2
-#define IOC2                 OSCTUNE_bits.IOC2
-#define IOCA2                OSCTUNE_bits.IOCA2
 #define TUN3                 OSCTUNE_bits.TUN3
-#define IOC3                 OSCTUNE_bits.IOC3
-#define IOCA3                OSCTUNE_bits.IOCA3
 #define TUN4                 OSCTUNE_bits.TUN4
-#define WPUA4                OSCTUNE_bits.WPUA4
-#define IOC4                 OSCTUNE_bits.IOC4
-#define IOCA4                OSCTUNE_bits.IOCA4
-#define WPUA5                OSCTUNE_bits.WPUA5
-#define IOC5                 OSCTUNE_bits.IOC5
-#define IOCA5                OSCTUNE_bits.IOCA5
 
 // ----- PCON bits --------------------
 typedef union {
@@ -917,6 +887,97 @@ extern volatile __PIR2_bits_t __at(PIR2_ADDR) PIR2_bits;
 #define C2IF                 PIR2_bits.C2IF
 #define OSFIF                PIR2_bits.OSFIF
 
+// ----- PORTA bits --------------------
+typedef union {
+  struct {
+    unsigned char RA0:1;
+    unsigned char RA1:1;
+    unsigned char RA2:1;
+    unsigned char RA3:1;
+    unsigned char RA4:1;
+    unsigned char RA5:1;
+    unsigned char :1;
+    unsigned char :1;
+  };
+} __PORTA_bits_t;
+extern volatile __PORTA_bits_t __at(PORTA_ADDR) PORTA_bits;
+
+#define RA0                  PORTA_bits.RA0
+#define RA1                  PORTA_bits.RA1
+#define RA2                  PORTA_bits.RA2
+#define RA3                  PORTA_bits.RA3
+#define RA4                  PORTA_bits.RA4
+#define RA5                  PORTA_bits.RA5
+
+// ----- PORTB bits --------------------
+typedef union {
+  struct {
+    unsigned char RB0:1;
+    unsigned char RB1:1;
+    unsigned char RB2:1;
+    unsigned char RB3:1;
+    unsigned char RB4:1;
+    unsigned char RB5:1;
+    unsigned char RB6:1;
+    unsigned char RB7:1;
+  };
+} __PORTB_bits_t;
+extern volatile __PORTB_bits_t __at(PORTB_ADDR) PORTB_bits;
+
+#define RB0                  PORTB_bits.RB0
+#define RB1                  PORTB_bits.RB1
+#define RB2                  PORTB_bits.RB2
+#define RB3                  PORTB_bits.RB3
+#define RB4                  PORTB_bits.RB4
+#define RB5                  PORTB_bits.RB5
+#define RB6                  PORTB_bits.RB6
+#define RB7                  PORTB_bits.RB7
+
+// ----- PORTC bits --------------------
+typedef union {
+  struct {
+    unsigned char RC0:1;
+    unsigned char RC1:1;
+    unsigned char RC2:1;
+    unsigned char RC3:1;
+    unsigned char RC4:1;
+    unsigned char RC5:1;
+    unsigned char RC6:1;
+    unsigned char RC7:1;
+  };
+} __PORTC_bits_t;
+extern volatile __PORTC_bits_t __at(PORTC_ADDR) PORTC_bits;
+
+#define RC0                  PORTC_bits.RC0
+#define RC1                  PORTC_bits.RC1
+#define RC2                  PORTC_bits.RC2
+#define RC3                  PORTC_bits.RC3
+#define RC4                  PORTC_bits.RC4
+#define RC5                  PORTC_bits.RC5
+#define RC6                  PORTC_bits.RC6
+#define RC7                  PORTC_bits.RC7
+
+// ----- PSTRCON bits --------------------
+typedef union {
+  struct {
+    unsigned char STRA:1;
+    unsigned char STRB:1;
+    unsigned char STRC:1;
+    unsigned char STRD:1;
+    unsigned char STRSYNC:1;
+    unsigned char :1;
+    unsigned char :1;
+    unsigned char :1;
+  };
+} __PSTRCON_bits_t;
+extern volatile __PSTRCON_bits_t __at(PSTRCON_ADDR) PSTRCON_bits;
+
+#define STRA                 PSTRCON_bits.STRA
+#define STRB                 PSTRCON_bits.STRB
+#define STRC                 PSTRCON_bits.STRC
+#define STRD                 PSTRCON_bits.STRD
+#define STRSYNC              PSTRCON_bits.STRSYNC
+
 // ----- PWM1CON bits --------------------
 typedef union {
   struct {
@@ -941,6 +1002,28 @@ extern volatile __PWM1CON_bits_t __at(PWM1CON_ADDR) PWM1CON_bits;
 #define PDC6                 PWM1CON_bits.PDC6
 #define PRSEN                PWM1CON_bits.PRSEN
 
+// ----- SRCON bits --------------------
+typedef union {
+  struct {
+    unsigned char :1;
+    unsigned char :1;
+    unsigned char PULSR:1;
+    unsigned char PULSS:1;
+    unsigned char C2REN:1;
+    unsigned char C1SEN:1;
+    unsigned char SR0:1;
+    unsigned char SR1:1;
+  };
+} __SRCON_bits_t;
+extern volatile __SRCON_bits_t __at(SRCON_ADDR) SRCON_bits;
+
+#define PULSR                SRCON_bits.PULSR
+#define PULSS                SRCON_bits.PULSS
+#define C2REN                SRCON_bits.C2REN
+#define C1SEN                SRCON_bits.C1SEN
+#define SR0                  SRCON_bits.SR0
+#define SR1                  SRCON_bits.SR1
+
 // ----- STATUS bits --------------------
 typedef union {
   struct {
@@ -1110,16 +1193,6 @@ typedef union {
     unsigned char WDTPS1:1;
     unsigned char WDTPS2:1;
     unsigned char WDTPS3:1;
-    unsigned char ADCS1:1;
-    unsigned char ADCS2:1;
-    unsigned char :1;
-  };
-  struct {
-    unsigned char :1;
-    unsigned char :1;
-    unsigned char :1;
-    unsigned char :1;
-    unsigned char ADCS0:1;
     unsigned char :1;
     unsigned char :1;
     unsigned char :1;
@@ -1132,42 +1205,46 @@ extern volatile __WDTCON_bits_t __at(WDTCON_ADDR) WDTCON_bits;
 #define WDTPS1               WDTCON_bits.WDTPS1
 #define WDTPS2               WDTCON_bits.WDTPS2
 #define WDTPS3               WDTCON_bits.WDTPS3
-#define ADCS0                WDTCON_bits.ADCS0
-#define ADCS1                WDTCON_bits.ADCS1
-#define ADCS2                WDTCON_bits.ADCS2
 
-// ----- WPUB bits --------------------
+// ----- WPUA bits --------------------
 typedef union {
   struct {
+    unsigned char WPUA0:1;
+    unsigned char WPUA1:1;
+    unsigned char WPUA2:1;
     unsigned char :1;
+    unsigned char WPUA4:1;
+    unsigned char WPUA5:1;
     unsigned char :1;
     unsigned char :1;
-    unsigned char :1;
-    unsigned char WPUB4:1;
-    unsigned char WPUB5:1;
-    unsigned char WPUB6:1;
-    unsigned char WPUB7:1;
   };
+} __WPUA_bits_t;
+extern volatile __WPUA_bits_t __at(WPUA_ADDR) WPUA_bits;
+
+#define WPUA0                WPUA_bits.WPUA0
+#define WPUA1                WPUA_bits.WPUA1
+#define WPUA2                WPUA_bits.WPUA2
+#define WPUA4                WPUA_bits.WPUA4
+#define WPUA5                WPUA_bits.WPUA5
+
+// ----- WPUB bits --------------------
+typedef union {
   struct {
     unsigned char :1;
     unsigned char :1;
     unsigned char :1;
     unsigned char :1;
-    unsigned char IOCB4:1;
-    unsigned char IOCB5:1;
-    unsigned char IOCB6:1;
-    unsigned char IOCB7:1;
+    unsigned char WPUB4:1;
+    unsigned char WPUB5:1;
+    unsigned char WPUB6:1;
+    unsigned char WPUB7:1;
   };
 } __WPUB_bits_t;
 extern volatile __WPUB_bits_t __at(WPUB_ADDR) WPUB_bits;
 
 #define WPUB4                WPUB_bits.WPUB4
-#define IOCB4                WPUB_bits.IOCB4
 #define WPUB5                WPUB_bits.WPUB5
-#define IOCB5                WPUB_bits.IOCB5
 #define WPUB6                WPUB_bits.WPUB6
-#define IOCB6                WPUB_bits.IOCB6
 #define WPUB7                WPUB_bits.WPUB7
-#define IOCB7                WPUB_bits.IOCB7
 
 #endif