// File: 16f872_g.lkr
// Generic linker script for the PIC16F872 processor

#IFDEF _DEBUG
  
  LIBPATH  .
  
  
  CODEPAGE   NAME=page0    START=0x0000   END=0x06FF
  CODEPAGE   NAME=debug3   START=0x0700   END=0x07FF   PROTECTED
  CODEPAGE   NAME=.idlocs  START=0x2000   END=0x2003   PROTECTED
  CODEPAGE   NAME=.config  START=0x2007   END=0x2007   PROTECTED
  CODEPAGE   NAME=eedata   START=0x2100   END=0x213F   PROTECTED
  
  SHAREBANK  NAME=dbgspr0  START=0x70     END=0x70     PROTECTED
  SHAREBANK  NAME=gprnobnk START=0x71     END=0x7F
  SHAREBANK  NAME=dbgspr0  START=0xF0     END=0xF0     PROTECTED
  SHAREBANK  NAME=gprnobnk START=0xF1     END=0xFF     PROTECTED
  SHAREBANK  NAME=dbgspr0  START=0x170    END=0x170    PROTECTED
  SHAREBANK  NAME=gprnobnk START=0x171    END=0x17F    PROTECTED
  SHAREBANK  NAME=dbgspr0  START=0x1F0    END=0x1F0    PROTECTED
  SHAREBANK  NAME=gprnobnk START=0x1F1    END=0x1FF    PROTECTED
  
  SHAREBANK   NAME=gprnobnk0     START=0x020    END=0x06F
  SHAREBANK   NAME=gprnobnk0     START=0x120    END=0x16F    PROTECTED
  
  SHAREBANK   NAME=gprnobnk1     START=0x0A0    END=0x0B4
  SHAREBANK   NAME=dbggpr3       START=0x0B5    END=0x0BF    PROTECTED
  SHAREBANK   NAME=gprnobnk1     START=0x1A0    END=0x1B4    PROTECTED
  SHAREBANK   NAME=dbggpr3       START=0x1B5    END=0x1BF    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
  
  SECTION    NAME=PROG1    ROM=page0      // ROM code space - page0
  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=.idlocs  START=0x2000   END=0x2003   PROTECTED
  CODEPAGE   NAME=.config  START=0x2007   END=0x2007   PROTECTED
  CODEPAGE   NAME=eedata   START=0x2100   END=0x213F   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=share0   START=0x20     END=0x6F
  SHAREBANK  NAME=share0   START=0x120    END=0x16F    PROTECTED
  
  SHAREBANK  NAME=share1   START=0xA0     END=0xBF
  SHAREBANK  NAME=share1   START=0x1A0    END=0x1BF    PROTECTED
  
  SHAREBANK  NAME=share2   START=0x70     END=0x7F
  SHAREBANK  NAME=share2   START=0xF0     END=0xFF     PROTECTED
  SHAREBANK  NAME=share2   START=0x170    END=0x17F    PROTECTED
  SHAREBANK  NAME=share2   START=0x1F0    END=0x1FF    PROTECTED
  
  SECTION    NAME=PROG1    ROM=page0      // ROM code space - page0
  SECTION    NAME=IDLOCS   ROM=.idlocs    // ID locations
  SECTION    NAME=DEEPROM  ROM=eedata     // Data EEPROM
#FI