// File: 16f818_g.lkr
// Generic linker script for the PIC16F818 processor

#IFDEF _DEBUG
  
  LIBPATH  .
  
  CODEPAGE   NAME=page       START=0x0000   END=0x02FF
  CODEPAGE   NAME=debug      START=0x0300   END=0x03FF   PROTECTED
  CODEPAGE   NAME=.idlocs    START=0x2000   END=0x2003   PROTECTED
  CODEPAGE   NAME=.device_id START=0x2006   END=0x2006   PROTECTED
  CODEPAGE   NAME=.config    START=0x2007   END=0x2009   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=0x11F    PROTECTED
  DATABANK   NAME=sfr3     START=0x180    END=0x19F    PROTECTED
  
  DATABANK   NAME=gpr0     START=0xA0     END=0xBF
  
  SHAREBANK  NAME=gprnobnk0 START=0x20     END=0x3F
  SHAREBANK  NAME=gprnobnk0 START=0x120    END=0x13F     PROTECTED
  SHAREBANK  NAME=gprnobnk0 START=0x1A0    END=0x1BF     PROTECTED
  
  SHAREBANK  NAME=gprnobnk1 START=0x40     END=0x64
  SHAREBANK  NAME=dbgspr1   START=0x65     END=0x70      PROTECTED
  SHAREBANK  NAME=gprnobnk2 START=0x71     END=0x7F
  
  SHAREBANK  NAME=gprnobnk1 START=0xC0     END=0xE4      PROTECTED
  SHAREBANK  NAME=dbgspr1   START=0xE5     END=0xF0      PROTECTED
  SHAREBANK  NAME=gprnobnk2 START=0xF1     END=0xFF      PROTECTED
  
  SHAREBANK  NAME=gprnobnk1 START=0x140    END=0x164     PROTECTED
  SHAREBANK  NAME=dbgspr1   START=0x165    END=0x170     PROTECTED
  SHAREBANK  NAME=gprnobnk2 START=0x171    END=0x17F     PROTECTED
  
  SHAREBANK  NAME=gprnobnk1 START=0x1C0    END=0x1E4     PROTECTED
  SHAREBANK  NAME=dbgspr1   START=0x1E5    END=0x1F0     PROTECTED
  SHAREBANK  NAME=gprnobnk2 START=0x1F1    END=0x1FF     PROTECTED
  
  SECTION    NAME=PROG        ROM=page       // ROM code space - page0
  SECTION	   NAME=IDLOCS      ROM=.idlocs    // ID locations
  SECTION	   NAME=DEVICEID    ROM=.device_id // ID locations
  SECTION    NAME=DEEPROM     ROM=eedata     // Data EEPROM
#ELSE
  
  LIBPATH  .
  
  CODEPAGE   NAME=page       START=0x0000   END=0x03FF
  CODEPAGE   NAME=.idlocs    START=0x2000   END=0x2003   PROTECTED
  CODEPAGE   NAME=.device_id START=0x2006   END=0x2006   PROTECTED
  CODEPAGE   NAME=.config    START=0x2007   END=0x2009   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=0x11F    PROTECTED
  DATABANK   NAME=sfr3     START=0x180    END=0x19F    PROTECTED
  
  DATABANK   NAME=gpr0     START=0xA0     END=0xBF
  
  SHAREBANK  NAME=gprnobnk0 START=0x20     END=0x3F
  SHAREBANK  NAME=gprnobnk0 START=0x120    END=0x13F     PROTECTED
  SHAREBANK  NAME=gprnobnk0 START=0x1A0    END=0x1BF     PROTECTED
  
  SHAREBANK  NAME=gprnobnk1 START=0x40     END=0x7F
  SHAREBANK  NAME=gprnobnk1 START=0xC0     END=0xFF     PROTECTED
  SHAREBANK  NAME=gprnobnk1 START=0x140    END=0x17F    PROTECTED
  SHAREBANK  NAME=gprnobnk1 START=0x1C0    END=0x1FF    PROTECTED
  
  SECTION    NAME=PROG        ROM=page       // ROM code space - page0
  SECTION	   NAME=IDLOCS      ROM=.idlocs    // ID locations
  SECTION	   NAME=DEVICEID    ROM=.device_id // ID locations
  SECTION    NAME=DEEPROM     ROM=eedata     // Data EEPROM
#FI