// File: 16f819_g.lkr
// Generic linker script for the PIC16F819 processor

LIBPATH .


#IFDEF _DEBUG
  CODEPAGE   NAME=page       START=0x0               END=0x5FF          
  CODEPAGE   NAME=debug      START=0x600             END=0x7FF          PROTECTED
#ELSE //no debug
  CODEPAGE   NAME=page       START=0x0               END=0x7FF           
#FI

CODEPAGE   NAME=.idlocs    START=0x2000            END=0x2003         PROTECTED 
CODEPAGE   NAME=.device_id START=0x2006            END=0x2006         PROTECTED 
CODEPAGE   NAME=eedata     START=0x2100            END=0x21FF         PROTECTED 
CODEPAGE   NAME=.config    START=0x2007            END=0x2007         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


#IFDEF _DEBUG
  DATABANK   NAME=dbgspr     START=0xE5              END=0xEF           PROTECTED
  DATABANK   NAME=gpr1       START=0xA0              END=0xE4           
#ELSE //no debug
  DATABANK   NAME=gpr1       START=0xA0              END=0xEF           
#FI

#IFDEF _DEBUG
  DATABANK   NAME=dbgspr1    START=0x165             END=0x16F          PROTECTED
  DATABANK   NAME=gpr2       START=0x120             END=0x164          
#ELSE //no debug
  DATABANK   NAME=gpr2       START=0x120             END=0x16F          
#FI


#IFDEF _DEBUG
  SHAREBANK  NAME=dbgnobnk   START=0x65              END=0x6F           PROTECTED
  SHAREBANK  NAME=gpr0       START=0x20              END=0x64           
  SHAREBANK  NAME=dbgnobnk   START=0x1E5             END=0x1EF          PROTECTED
  SHAREBANK  NAME=gpr0       START=0x1A0             END=0x1E4          PROTECTED
#ELSE //no debug
  SHAREBANK  NAME=gpr0       START=0x20              END=0x6F           
  SHAREBANK  NAME=gpr0       START=0x1A0             END=0x1EF          PROTECTED
#FI

#IFDEF _DEBUG
  SHAREBANK  NAME=dbgnobnk1  START=0x70              END=0x70           PROTECTED
  SHAREBANK  NAME=gprnobnk   START=0x71              END=0x7F           
  SHAREBANK  NAME=dbgnobnk1  START=0xF0              END=0xF0           PROTECTED
  SHAREBANK  NAME=gprnobnk   START=0xF1              END=0xFF           PROTECTED
  SHAREBANK  NAME=dbgnobnk1  START=0x170             END=0x170          PROTECTED
  SHAREBANK  NAME=gprnobnk   START=0x171             END=0x17F          PROTECTED
  SHAREBANK  NAME=dbgnobnk1  START=0x1F0             END=0x1F0          PROTECTED
  SHAREBANK  NAME=gprnobnk   START=0x1F1             END=0x1FF          PROTECTED
#ELSE //no debug
  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
#FI

SECTION    NAME=PROG       ROM=page            // ROM code space
SECTION    NAME=IDLOCS     ROM=.idlocs         // ID locations
SECTION    NAME=DEVICEID   ROM=.device_id      // Device ID
SECTION    NAME=DEEPROM    ROM=eedata          // Data EEPROM

