// File: 16f639_g.lkr
// Generic linker script for the PIC16F639 processor

#IFDEF _DEBUG
  
  LIBPATH  .
  
  CODEPAGE   NAME=page     START=0x0     END=0x6FF
  CODEPAGE   NAME=debug    START=0x700   END=0x7FF     PROTECTED
  CODEPAGE   NAME=.idlocs  START=0x2000  END=0x2003    PROTECTED
  CODEPAGE   NAME=.config  START=0x2007  END=0x2007    PROTECTED
  CODEPAGE   NAME=eedata   START=0x2100  END=0x21FF    PROTECTED
  
  SHAREBANK   NAME=sfrnobnk0 START=0x0      END=0x0B     PROTECTED
  SHAREBANK   NAME=sfrnobnk0 START=0x100    END=0x10B    PROTECTED
  SHAREBANK   NAME=sfrnobnk1 START=0x80     END=0x8B     PROTECTED
  SHAREBANK   NAME=sfrnobnk1 START=0x180    END=0x18B    PROTECTED
  DATABANK    NAME=sfr0      START=0x0C     END=0x1F     PROTECTED
  DATABANK    NAME=sfr1      START=0x8C     END=0x9F     PROTECTED
  DATABANK    NAME=sfr2      START=0x10C    END=0x11F    PROTECTED
  
  DATABANK    NAME=gpr0      START=0x20     END=0x64
  DATABANK    NAME=gpr1      START=0xA0     END=0xBF
  DATABANK    NAME=dbgspr    START=0x65     END=0x6F     PROTECTED
  
  SHAREBANK   NAME=dbgnobnk  START=0x70     END=0x70     PROTECTED
  SHAREBANK   NAME=dbgnobnk  START=0xF0     END=0xF0     PROTECTED
  SHAREBANK   NAME=dbgnobnk  START=0x170    END=0x170    PROTECTED
  SHAREBANK   NAME=dbgnobnk  START=0x1F0    END=0x1F0    PROTECTED
  
  SHAREBANK   NAME=gprnobnk  START=0x71     END=0x7F
  SHAREBANK   NAME=gprnobnk  START=0xF1     END=0xFF     PROTECTED
  SHAREBANK   NAME=gprnobnk  START=0x171    END=0x17F    PROTECTED
  SHAREBANK   NAME=gprnobnk  START=0x1F1    END=0x1FF    PROTECTED
  
  SECTION    NAME=PROG     ROM=page      // ROM code space
  SECTION    NAME=IDLOCS   ROM=.idlocs   // ID locations
  SECTION    NAME=DEEPROM  ROM=eedata    // Data EEPROM
#ELSE
  
  LIBPATH  .
  
  CODEPAGE   NAME=page     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=0x21FF    PROTECTED
  
  SHAREBANK   NAME=sfrnobnk0 START=0x0      END=0x0B     PROTECTED
  SHAREBANK   NAME=sfrnobnk0 START=0x100    END=0x10B    PROTECTED
  SHAREBANK   NAME=sfrnobnk1 START=0x80     END=0x8B     PROTECTED
  SHAREBANK   NAME=sfrnobnk1 START=0x180    END=0x18B    PROTECTED
  DATABANK    NAME=sfr0      START=0x0C     END=0x1F     PROTECTED
  DATABANK    NAME=sfr1      START=0x8C     END=0x9F     PROTECTED
  DATABANK    NAME=sfr2      START=0x10C    END=0x11F    PROTECTED
  
  DATABANK    NAME=gpr0      START=0x20     END=0x6F
  DATABANK    NAME=gpr1      START=0xA0     END=0xBF
  SHAREBANK   NAME=gprnobnk  START=0x70     END=0x7F
  SHAREBANK   NAME=gprnobnk  START=0xF0     END=0xFF     PROTECTED
  SHAREBANK   NAME=gprnobnk  START=0x170    END=0x17F    PROTECTED
  SHAREBANK   NAME=gprnobnk  START=0x1F0    END=0x1FF    PROTECTED
  
  SECTION    NAME=PROG     ROM=page      // ROM code space
  SECTION    NAME=IDLOCS   ROM=.idlocs   // ID locations
  SECTION    NAME=DEEPROM  ROM=eedata    // Data EEPROM
#FI