// File: 16f873a_g.lkr
// Generic linker script for the PIC16F873A processor

#IFDEF _DEBUG
  
  LIBPATH  .
  
  CODEPAGE   NAME=page0    START=0x0      END=0x7FF
  CODEPAGE   NAME=page1    START=0x800    END=0xEFF
  CODEPAGE   NAME=debug    START=0xF00    END=0xFFF    PROTECTED
  CODEPAGE   NAME=.idlocs  START=0x2000   END=0x2003   PROTECTED
  CODEPAGE   NAME=.config  START=0x2007   END=0x2007   PROTECTED
  CODEPAGE   NAME=eedata   START=0x2100   END=0x217F   PROTECTED
  
  DATABANK   NAME=sfr0     START=0x0      END=0x1F     PROTECTED
  DATABANK   NAME=sfr1     START=0x80     END=0x9F     PROTECTED
  DATABANK   NAME=sfr2     START=0x100    END=0x10F    PROTECTED
  DATABANK   NAME=sfr3     START=0x180    END=0x18F    PROTECTED
  
  SHAREBANK   NAME=gpr0     START=0x20     END=0x7D
  SHAREBANK   NAME=dbg0     START=0x7E     END=0x7F   PROTECTED
  SHAREBANK   NAME=gpr0     START=0x120    END=0x17D  PROTECTED
  SHAREBANK   NAME=dbg0     START=0x17E    END=0x17F  PROTECTED
  
  SHAREBANK   NAME=gpr1     START=0xA0     END=0xF3
  SHAREBANK   NAME=dbg1     START=0xF4     END=0xFF   PROTECTED
  SHAREBANK   NAME=gpr1     START=0x1A0    END=0x1F3  PROTECTED
  SHAREBANK   NAME=dbg1     START=0x1F4    END=0x1FF  PROTECTED
  
  SECTION    NAME=PROG1    ROM=page0      // ROM code space - page0
  SECTION    NAME=PROG2    ROM=page1      // ROM code space - page1
  SECTION    NAME=IDLOCS   ROM=.idlocs    // ID locations
  SECTION    NAME=DEEPROM  ROM=eedata     // Data EEPROM
#ELSE
  
  LIBPATH  .
  
  CODEPAGE   NAME=page0    START=0x0      END=0x7FF
  CODEPAGE   NAME=page1    START=0x800    END=0xFFF
  CODEPAGE   NAME=.idlocs  START=0x2000   END=0x2003   PROTECTED
  CODEPAGE   NAME=.config  START=0x2007   END=0x2007   PROTECTED
  CODEPAGE   NAME=eedata   START=0x2100   END=0x217F   PROTECTED
  
  DATABANK   NAME=sfr0     START=0x0      END=0x1F     PROTECTED
  DATABANK   NAME=sfr1     START=0x80     END=0x9F     PROTECTED
  DATABANK   NAME=sfr2     START=0x100    END=0x10F    PROTECTED
  DATABANK   NAME=sfr3     START=0x180    END=0x18F    PROTECTED
  
  SHAREBANK   NAME=gpr0     START=0x20     END=0x7F
  SHAREBANK   NAME=gpr0     START=0x120    END=0x17F     PROTECTED
  
  SHAREBANK   NAME=gpr1     START=0xA0     END=0xFF
  SHAREBANK   NAME=gpr1     START=0x1A0    END=0x1FF     PROTECTED
  
  SECTION    NAME=PROG1    ROM=page0      // ROM code space - page0
  SECTION    NAME=PROG2    ROM=page1      // ROM code space - page1
  SECTION    NAME=IDLOCS   ROM=.idlocs    // ID locations
  SECTION    NAME=DEEPROM  ROM=eedata     // Data EEPROM
#FI