<parts>
<!-- BANK 0 -->
  <regblock name="SFR0" start="0x0000" end="0x001F" >
    <register  name="PORTA"  addr="0x00C"  reset="xxxxxxxx" mask="" 
               bits="RA0,RA1,RA2,RA3,RA4,RA5,RA6,RA7" />
               
    <register  name="PORTB"  addr="0x00D"  reset="xxxxxxxx" mask="" 
               bits="RB0,RB1,RB2,RB3,RB4,RB5,RB6,RB7" />
               
    <register  name="PIR1"    addr="0x011"  reset="00000000" mask="11001111" 
               bits="TMR1IF,TMR2IF,CCP1IF,SSP1IF,TXIF,RCIF,ADIF,TMR1GIF" />
               
    <register  name="PIR2"    addr="0x012"  reset="00000000" mask="11111001" 
               bits="0,0,0,BCL1IF,EEIF,C1IF,C2IF,OSFIF" />
               
    <register  name="TMR0"   addr="0x015"  reset="xxxxxxxx" mask="" bits="" />
    <register  name="TMR1L"  addr="0x016"  reset="xxxxxxxx" mask="" bits="" />
    <register  name="TMR1H"  addr="0x017"  reset="xxxxxxxx" mask="" bits="" />
    <register  name="T1CON"  addr="0x018"  reset="000000-0" mask="" 
               bits="TMR1ON,0,T1SYNC,T1OSCEN,T1CKPS0,T1CKPS1,TMR1CS0,TMR1CS1" />
               
    <register  name="T1GCON"  addr="0x019"  reset="00000x00" mask="11111011" 
               bits="T1GSS0,T1GSS1,T1GVAL,T1GGO,T1GSPM,T1GTM,T1GPOL,TMR1GE" />
               
    <register  name="TMR2"   addr="0x01A"  reset="00000000" mask="" bits="" />
    <register  name="PR2"    addr="0x01B"  reset="11111111" mask="" bits="" />
    <register  name="T2CON"  addr="0x01C"  reset="00000000" mask="01111111" 
               bits="T2CKPS0,T2CKPS1,TMR2ON,T2OUTPS0,T2OUTPS1,T2OUTPS2,T2OUTPS3,0" />
               
    <register  name="CPSCON0" addr="0x01E"  reset="00000000" mask="10001111" 
               bits="T0XCS,CPSOUT,CPSRNG0,CPSRNG1,0,0,0,CPSON" />
               
    <register  name="CPSCON1" addr="0x01F"  reset="----0000" mask="00001111" 
               bits="CPSCH0,CPSCH1,CPSCH2,CPSCH3,0,0,0,0" />
  </regblock>
  <datablock name="GPR0" start="0x0020" end="0x006F"/>
  <datablock name="RAM0" start="0x0070" end="0x007F"/>
   
<!-- BANK 1 -->
  <regblock name="SFR1" start="0x0080" end="0x009F">
    <mapped                   addr="0x0080" mapto="0x00"/><!-- INDF0 -->
    <mapped                   addr="0x0081" mapto="0x01"/><!-- INDF1 -->
    <mapped                   addr="0x0082" mapto="0x02"/><!-- PCL -->
    <mapped                   addr="0x0083" mapto="0x03"/><!-- STATUS -->
    <mapped                   addr="0x0084" mapto="0x04"/><!-- FSR0L -->
    <mapped                   addr="0x0085" mapto="0x05"/><!-- FSR0H -->
    <mapped                   addr="0x0086" mapto="0x06"/><!-- FSR1L -->
    <mapped                   addr="0x0087" mapto="0x07"/><!-- FSR1H -->
    <mapped                   addr="0x0088" mapto="0x08"/><!-- BSR -->
    <mapped                   addr="0x0089" mapto="0x09"/><!-- WREG -->
    <mapped                   addr="0x008A" mapto="0x0A"/><!-- PCLATH -->
    <mapped                   addr="0x008B" mapto="0x0B"/><!-- INTCON -->
    
    <register  name="TRISA"   addr="0x008C"  reset="11111111"  mask="" 
               bits="TRISA0,TRISA1,TRISA2,TRISA3,TRISA4,TRISA5,TRISA6,TRISA7" />
               
    <register  name="TRISB"   addr="0x008D"  reset="11111111"  mask="" 
               bits="TRISB0,TRISB1,TRISB2,TRISB3,TRISB4,TRISB5,TRISB6,TRISB7" />
               
    <register  name="PIE1"    addr="0x0091"  reset="00000000"  mask="" 
               bits="TMR1IE,TMR2IE,CCP1IE,SSP1IE,TXIE,RCIE,ADIE,TMR1GIE" />
               
    <register  name="PIE2"    addr="0x0092"  reset="00000000"  mask="11111001" 
               bits="0,0,0,BCL1IE,EEIE,C1IE,C2IE,OSFIE" />
               
    <register  name="OPTION" addr="0x0095" reset="11111111" mask="" 
               bits="PS0,PS1,PS2,PSA,T0SE,T0CS,INTEDG,WPUEN" />
               
    <register  name="PCON"    addr="0x0096"  reset="00--11qq"  mask="11001111" 
               bits="NOT_BOR,NOT_POR,NOT_RI,NOT_RMCLR,0,0,STKUNF,STKOVF" />
               
    <register  name="WDTCON"  addr="0x0097"  reset="00010110"  mask="00111111" 
               bits="SWDTEN,WDTPS0,WDTPS1,WDTPS2,WDTPS3,WDTPS4,0,0" />
               
    <register  name="OSCTUNE" addr="0x0098"  reset="--000000"  mask="00111111" 
               bits="TUN0,TUN1,TUN2,TUN3,TUN4,TUN5,0,0" />
               
    <register  name="OSCCON"  addr="0x0099"  reset="00111000"  mask="11111011" 
               bits="SCS0,SCS1,0,IRCF0,IRCF1,IRCF2,IRCF3,SPLLEN" />
               
    <register  name="OSCSTAT" addr="0x009A"  reset="10q00q00"  mask="" 
               bits="HFIOFS,LFIOFR,MFIOFR,HFIOFL,HFIOFR,OSTS,PLLR,T1OSCR" />
               
    <register  name="ADRESL"  addr="0x009B"  reset="xxxxxxxx"  mask="" bits="" />
    <register  name="ADRESH"  addr="0x009C"  reset="xxxxxxxx"  mask="" bits="" />
    <register  name="ADCON0"  addr="0x009D"  reset="-0000000"  mask="01111111" 
               bits="ADON,GO/DONE,CHS0,CHS1,CHS2,CHS3,CHS4,0" />
               
    <register  name="ADCON1"  addr="0x009E"  reset="00000000"  mask="11110111" 
               bits="ADPREF0,ADPREF1,ADNREF,0,ADCS0,ADCS1,ADCS2,ADFM" />
  </regblock>
  <datablock name="GPR1" start="0x00A0" end="0x00EF"/>
  <datablock name="RAM1" start="0x00F0" end="0x00FF" mapto="0x0070"/>
   
<!-- BANK 2 -->
  <regblock name="SFR2" start="0x0100" end="0x011F">
    <mapped                  addr="0x0100" mapto="0x00"/><!-- INDF0 -->
    <mapped                  addr="0x0101" mapto="0x01"/><!-- INDF1 -->
    <mapped                  addr="0x0102" mapto="0x02"/><!-- PCL -->
    <mapped                  addr="0x0103" mapto="0x03"/><!-- STATUS -->
    <mapped                  addr="0x0104" mapto="0x04"/><!-- FSR0L -->
    <mapped                  addr="0x0105" mapto="0x05"/><!-- FSR0H -->
    <mapped                  addr="0x0106" mapto="0x06"/><!-- FSR1L -->
    <mapped                  addr="0x0107" mapto="0x07"/><!-- FSR1H -->
    <mapped                  addr="0x0108" mapto="0x08"/><!-- BSR -->
    <mapped                  addr="0x0109" mapto="0x09"/><!-- WREG -->
    <mapped                  addr="0x010A" mapto="0x0A"/><!-- PCLATH -->
    <mapped                  addr="0x010B" mapto="0x0B"/><!-- INTCON -->
   
    <register  name="LATA"    addr="0x010C"  reset="xx-xxxxx"  mask="11011111" 
               bits="LATA0,LATA1,LATA2,LATA3,LATA4,0,LATA6,LATA7" />
               
    <register  name="LATB"    addr="0x010D"  reset="xxxxxxxx"  mask="" 
               bits="LATB0,LATB1,LATB2,LATB3,LATB4,LATB5,LATB6,LATB7" />
               
    <register  name="CM1CON0" addr="0x0111"  reset="00000100"  mask="11110111" 
               bits="C1SYNC,C1HYS,C1SP,0,C1POL,C1OE,C1OUT,C1ON" />
               
    <register  name="CM1CON1" addr="0x0112"  reset="0000--00"  mask="11110011" 
               bits="C1NCH0,C1NCH1,0,0,C1PCH0,C1PCH1,C1INTN,C1INTP" />
               
    <register  name="CM2CON0" addr="0x0113"  reset="00000100"  mask="11110111" 
               bits="C2SYNC,C2HYS,C2SP,0,C2POL,C2OE,C2OUT,C2ON" />
               
    <register  name="CM2CON1" addr="0x0114"  reset="00000000"  mask="11110011" 
               bits="C2NCH0,C2NCH1,0,0,C2PCH0,C2PCH1,C2INTN,C2INTP" />
               
    <register  name="CMOUT"  addr="0x0115"  reset="00000000"  mask="00000000" 
               bits="MC1OUT,MC2OUT,0,0,0,0,0,0" />
               
    <register  name="BORCON"  addr="0x0116"  reset="1------q"  mask="10000001" 
               bits="BORRDY,0,0,0,0,0,0,SBOREN" />
               
    <register  name="FVRCON"  addr="0x0117"  reset="0qrr0000"  mask="10001111" 
               bits="ADFVR0,ADFVR1,CDAFVR0,CDAFVR1,TSRNG,TSEN,FVRRDY,FVREN" />
               
    <register  name="DACCON0" addr="0x0118"  reset="000-00-0"  mask="11101101" 
               bits="DACNSS,0,DACPSS0,DACPSS1,0,DACOE,DACLPS,DACEN" />
               
    <register  name="DACCON1" addr="0x0119"  reset="---00000"  mask="00011111" 
               bits="DACR0,DACR1,DACR2,DACR3,DACR4,0,0,0" />
               
    <register  name="SRCON0"  addr="0x011A"  reset="00000000"  mask="" 
               bits="SRPR,SRPS,SRNQEN,SRQEN,SRCLK0,SRCLK1,SRCLK2,SRLEN" />
               
    <register  name="SRCON1"  addr="0x011B"  reset="00000000"  mask="" 
               bits="SRRC1E,SRRC2E,SRRCKE,SRRPE,SRSC1E,SRSC2E,SRSCKE,SRSPE" />
               
    <register  name="APFCON0" addr="0x011D"  reset="00000000"  mask="" 
               bits="CCP1SEL,P1CSEL,P1DSEL,0,0,SS1SEL,SDO1SEL,RXDTSEL" />
               
    <register  name="APFCON1" addr="0x011E"  reset="00000000"  mask="00000001" 
               bits="TXCKSEL,0,0,0,0,0,0,0" />
  </regblock>
  <datablock name="GPR2" start="0x0120" end="0x016F"/>
  <datablock name="RAM2" start="0x0170" end="0x017F" mapto="0x0070"/>
   
<!-- BANK 3 -->
  <regblock name="SFR3" start="0x0180" end="0x019F">
    <mapped                  addr="0x0180" mapto="0x00"/><!-- INDF0 -->
    <mapped                  addr="0x0181" mapto="0x01"/><!-- INDF1 -->
    <mapped                  addr="0x0182" mapto="0x02"/><!-- PCL -->
    <mapped                  addr="0x0183" mapto="0x03"/><!-- STATUS -->
    <mapped                  addr="0x0184" mapto="0x04"/><!-- FSR0L -->
    <mapped                  addr="0x0185" mapto="0x05"/><!-- FSR0H -->
    <mapped                  addr="0x0186" mapto="0x06"/><!-- FSR1L -->
    <mapped                  addr="0x0187" mapto="0x07"/><!-- FSR1H -->
    <mapped                  addr="0x0188" mapto="0x08"/><!-- BSR -->
    <mapped                  addr="0x0189" mapto="0x09"/><!-- WREG -->
    <mapped                  addr="0x018A" mapto="0x0A"/><!-- PCLATH -->
    <mapped                  addr="0x018B" mapto="0x0B"/><!-- INTCON -->

    <register  name="ANSELA"  addr="0x018C"  reset="00011111"  mask="00011111" 
               bits="ANSA0,ANSA1,ANSA2,ANSA3,ANSA4,0,0,0" />
               
    <register  name="ANSELB"  addr="0x018D"  reset="11111110"  mask="11111110" 
               bits="0,ANSB1,ANSB2,ANSB3,ANSB4,ANSB5,ANSB6,ANSB7" />
    
    <register  name="EEADRL"  addr="0x0191"  reset="00000000"  mask="" bits="" />
    <register  name="EEADRH"  addr="0x0192"  reset="-0000000"  mask="" bits="01111111" />
    <register  name="EEDATL"  addr="0x0193"  reset="xxxxxxxx"  mask="" bits="" />
    <register  name="EEDATH"  addr="0x0194"  reset="--xxxxxx"  mask="00111111" bits="" />
    <register  name="EECON1"  addr="0x0195"  reset="0000x000"  mask="" 
               bits="RD,WR,WREN,WRERR,FREE,LWLO,CFGS,EEPGD" />
    
    <register  name="EECON2"  addr="0x0196"  reset="00000000"  mask="" bits="" />
    <register  name="RCREG"   addr="0x0199"  reset="00000000"  mask="" bits="" />
    <register  name="TXREG"   addr="0x019A"  reset="00000000"  mask="" bits="" />
    <register  name="SPBRGL"  addr="0x019B"  reset="00000000"  mask="" bits="" />
    <register  name="SPBRGH"  addr="0x019C"  reset="00000000"  mask="" bits="" />
    <register  name="RCSTA"   addr="0x019D"  reset="0000000x"  mask="" 
               bits="RX9D,OERR,FERR,ADDEN,CREN,SREN,RX9,SPEN" />
    
    <register  name="TXSTA"  addr="0x019E"  reset="00000010"  mask="11111101" 
               bits="TX9D,TRMT,BRGH,SENDB,SYNC,TXEN,TX9,CSRC" />
    
    <register  name="BAUDCON" addr="0x019F"  reset="01000000"  mask="11011011" 
               bits="ABDEN,WUE,0,BRG16,SCKP,0,RCIDL,ABDOVF" />
  </regblock>
  <datablock name="GPR3" start="0x01A0" end="0x01EF"/>
  <datablock name="RAM3" start="0x01F0" end="0x01FF" mapto="0x0070"/>
 
<!-- BANK 4 -->
  <regblock name="SFR4" start="0x0200" end="0x021F">
    <mapped                  addr="0x0200" mapto="0x00"/><!-- INDF0 -->
    <mapped                  addr="0x0201" mapto="0x01"/><!-- INDF1 -->
    <mapped                  addr="0x0202" mapto="0x02"/><!-- PCL -->
    <mapped                  addr="0x0203" mapto="0x03"/><!-- STATUS -->
    <mapped                  addr="0x0204" mapto="0x04"/><!-- FSR0L -->
    <mapped                  addr="0x0205" mapto="0x05"/><!-- FSR0H -->
    <mapped                  addr="0x0206" mapto="0x06"/><!-- FSR1L -->
    <mapped                  addr="0x0207" mapto="0x07"/><!-- FSR1H -->
    <mapped                  addr="0x0208" mapto="0x08"/><!-- BSR -->
    <mapped                  addr="0x0209" mapto="0x09"/><!-- WREG -->
    <mapped                  addr="0x020A" mapto="0x0A"/><!-- PCLATH -->
    <mapped                  addr="0x020B" mapto="0x0B"/><!-- INTCON -->

    <register  name="WPUA"    addr="0x020C"  reset="00100000"  mask="00100000" 
               bits="0,0,0,0,0,WPUA5,0,0" />
               
    <register  name="WPUB"    addr="0x020D"  reset="11111111"  mask="" 
               bits="WPUB0,WPUB1,WPUB2,WPUB3,WPUB4,WPUB5,WPUB6,WPUB7" />
    
    <register  name="SSP1BUF"  addr="0x0211"  reset="xxxxxxxx"  mask="" bits="" />
    <register  name="SSP1ADD"  addr="0x0212"  reset="00000000"  mask="" bits="" />
    <register  name="SSP1MSK"  addr="0x0213"  reset="11111111"  mask="" bits="" />
    <register  name="SSP1STAT" addr="0x0214"  reset="00000000"  mask="" 
               bits="BF,UA,R_W,S,P,D_A,CKE,SMP" />
               
    <register  name="SSP1CON1" addr="0x0215"  reset="00000000"  mask="" 
               bits="SSPM0,SSPM1,SSPM2,SSPM3,CKP,SSPEN,SSPOV,WCOL" />
               
    <register  name="SSP1CON2" addr="0x0216"  reset="00000000"  mask="" 
               bits="SEN,RSEN,PEN,RCEN,ACKEN,ACKDT,ACKSTAT,GCEN" />
               
    <register  name="SSP1CON3" addr="0x0217"  reset="00000000"  mask="" 
               bits="DHEN,AHEN,SBCDE,SDAHT,BOEN,SCIE,PCIE,ACKTIM" />
  </regblock>
  <datablock name="GPR4" start="0x0220" end="0x0250"/>
  <datablock name="RAM4" start="0x0270" end="0x027F" mapto="0x0070"/>
   
<!-- BANK 5 -->
  <regblock name="SFR5" start="0x0280" end="0x029F">
    <mapped                  addr="0x0280" mapto="0x00"/><!-- INDF0 -->
    <mapped                  addr="0x0281" mapto="0x01"/><!-- INDF1 -->
    <mapped                  addr="0x0282" mapto="0x02"/><!-- PCL -->
    <mapped                  addr="0x0283" mapto="0x03"/><!-- STATUS -->
    <mapped                  addr="0x0284" mapto="0x04"/><!-- FSR0L -->
    <mapped                  addr="0x0285" mapto="0x05"/><!-- FSR0H -->
    <mapped                  addr="0x0286" mapto="0x06"/><!-- FSR1L -->
    <mapped                  addr="0x0287" mapto="0x07"/><!-- FSR1H -->
    <mapped                  addr="0x0288" mapto="0x08"/><!-- BSR -->
    <mapped                  addr="0x0289" mapto="0x09"/><!-- WREG -->
    <mapped                  addr="0x028A" mapto="0x0A"/><!-- PCLATH -->
    <mapped                  addr="0x028B" mapto="0x0B"/><!-- INTCON -->
   
    <register  name="CCPR1L"  addr="0x0291" reset="xxxxxxxx"  mask="" bits="" />
    <register  name="CCPR1H"  addr="0x0292" reset="xxxxxxxx"  mask="" bits="" />
    <register  name="CCP1CON" addr="0x0293" reset="00000000"  mask="" 
               bits="CCP1M0,CCP1M1,CCP1M2,CCP1M3,DC1B0,DC1B1,P1M0,P1M1" />
               
    <register  name="PWM1CON" addr="0x0294" reset="00000000"  mask="" 
               bits="P1DC0,P1DC1,P1DC2,P1DC3,P1DC4,P1DC5,P1DC6,P1RSEN" />
               
    <register  name="CCP1AS"  addr="0x0295" reset="00000000"  mask="" 
               bits="PSS1BD0,PSS1BD1,PSS1AC0,PSS1AC1,CCP1AS0,CCP1AS1,CCP1AS2,CCP1ASE" />       
               
    <register  name="PSTR1CON" addr="0x0296" reset="00000001"  mask="00011111" 
               bits="STR1A,STR1B,STR1C,STR1D,STR1SYNC,0,0,0" />
  </regblock>
  <datablock name="RAM5" start="0x02F0" end="0x02FF"  mapto="0x0070"/>
   
<!-- BANK 6 -->
  <regblock name="SFR6" start="0x0300" end="0x031F">
    <mapped                  addr="0x0300" mapto="0x00"/><!-- INDF0 -->
    <mapped                  addr="0x0301" mapto="0x01"/><!-- INDF1 -->
    <mapped                  addr="0x0302" mapto="0x02"/><!-- PCL -->
    <mapped                  addr="0x0303" mapto="0x03"/><!-- STATUS -->
    <mapped                  addr="0x0304" mapto="0x04"/><!-- FSR0L -->
    <mapped                  addr="0x0305" mapto="0x05"/><!-- FSR0H -->
    <mapped                  addr="0x0306" mapto="0x06"/><!-- FSR1L -->
    <mapped                  addr="0x0307" mapto="0x07"/><!-- FSR1H -->
    <mapped                  addr="0x0308" mapto="0x08"/><!-- BSR -->
    <mapped                  addr="0x0309" mapto="0x09"/><!-- WREG -->
    <mapped                  addr="0x030A" mapto="0x0A"/><!-- PCLATH -->
    <mapped                  addr="0x030B" mapto="0x0B"/><!-- INTCON -->
  </regblock>
  <datablock name="RAM6" start="0x0370" end="0x037F"  mapto="0x0070"/>
 
<!-- BANK 7 -->
  <regblock name="SFR7" start="0x0380" end="0x039F">
    <mapped                  addr="0x0380" mapto="0x00"/><!-- INDF0 -->
    <mapped                  addr="0x0381" mapto="0x01"/><!-- INDF1 -->
    <mapped                  addr="0x0382" mapto="0x02"/><!-- PCL -->
    <mapped                  addr="0x0383" mapto="0x03"/><!-- STATUS -->
    <mapped                  addr="0x0384" mapto="0x04"/><!-- FSR0L -->
    <mapped                  addr="0x0385" mapto="0x05"/><!-- FSR0H -->
    <mapped                  addr="0x0386" mapto="0x06"/><!-- FSR1L -->
    <mapped                  addr="0x0387" mapto="0x07"/><!-- FSR1H -->
    <mapped                  addr="0x0388" mapto="0x08"/><!-- BSR -->
    <mapped                  addr="0x0389" mapto="0x09"/><!-- WREG -->
    <mapped                  addr="0x038A" mapto="0x0A"/><!-- PCLATH -->
    <mapped                  addr="0x038B" mapto="0x0B"/><!-- INTCON -->
   
    <register  name="IOCBP"  addr="0x0394"  reset="00000000"  mask="" 
               bits="IOCBP0,IOCBP1,IOCBP2,IOCBP3,IOCBP4,IOCBP5,IOCBP6,IOCBP7" />
               
    <register  name="IOCBN"  addr="0x0395"  reset="00000000"  mask="" 
               bits="IOCBN0,IOCBN1,IOCBN2,IOCBN3,IOCBN4,IOCBN5,IOCBN6,IOCBN7" />
               
    <register  name="IOCBF"  addr="0x0396"  reset="00000000"  mask="" 
               bits="IOCBF0,IOCBF1,IOCBF2,IOCBF3,IOCBF4,IOCBF5,IOCBF6,IOCBF7" />
               
    <register  name="CLKRCON" addr="0x039A"  reset="00110000"  mask="" 
               bits="CLKRDIV0,CLKRDIV1,CLKRDIV2,CLKRDC0,CLKRDC1,CLKRSLR,CLKROE,CLKREN" />
               
    <register  name="MDCON"  addr="0x039C"  reset="0010---0"  mask="11110001" 
               bits="MDBIT,0,0,MDOUT,MDOPOL,MDSLR,MDOE,MDEN" />
               
    <register  name="MDSRC"  addr="0x039D"  reset="x---xxxx"  mask="10001111" 
               bits="MDMS0,MDMS1,MDMS2,MDMS3,0,0,0,MDMSODIS" />
               
    <register  name="MDCARL"  addr="0x039E"  reset="xxx-xxxx"  mask="11101111" 
               bits="MDCL0,MDCL1,MDCL2,MDCL3,0,MDCLSYNC,MDCLPOL,MDCLODIS" />
               
    <register  name="MDCARH"  addr="0x039F"  reset="xxx-xxxx"  mask="11101111" 
               bits="MDCH0,MDCH1,MDCH2,MDCH3,0,MDCHSYNC,MDCHPOL,MDCHODIS" />
  </regblock>
  <datablock name="RAM7" start="0x03F0" end="0x03FF"  mapto="0x0070"/>
</parts>
