// File: rm18f67j50.lkr copied directly from rm18f87j50.lkr since they share the same memory layout

// File: rm18f87j50.lkr
// Sample linker script for the PIC18F87J50 processor

// THIS LINKER SCRIPT HAS BEEN MODIFIED...  This version is intended to be used
// with the "PROGRAMMABLE_WITH_USB_HID_BOOTLOADER" bootloader.  The HID
// bootloader occupies memory ranges 0x000-0xFFF.  In order for the code generated
// by this project to work with the bootloader, the linker must not put any code
// in the 0x00-0xFFF address range.

// This linker script was originated from the 18f87j50.lkr file provided by
// the MCC18 distribution.

// NOTE: As configured by default the HID bootloader does not erase or attempt to
// program the last 1024 byte block of program memory (because this flash memory
// block contains the flash configuration words).
// Erasing and reprogramming the configuration words is "slightly dangerous" in that
// it is possible to bootload incorrect configuration bit settings that will
// prevent both the application and bootloader from working properly (ex: incorrect
// oscillator configuration settings, which are incompatible with USB operation).
// The bootloader does allow the user to override this behavior however, and the 
// last 1024 bytes of program memory (including config words) may be both
// erased and programmed, if the user is careful.

// However, by default, the last 1024 bytes of program memory are not
// erased or re-programmed.  Therefore, the last 1024 bytes of program memory
// have been marked PROTECTED in the linker script, to prevent the linker from
// "accidentally" placing code in this region.


LIBPATH .

FILES c018i.o
FILES clib.lib
FILES p18f67j50.lib

CODEPAGE   NAME=bootloader START=0x0            END=0xFFF          PROTECTED
CODEPAGE   NAME=vectors    START=0x1000         END=0x1029		   PROTECTED
CODEPAGE   NAME=page       START=0x102A         END=0x1FBFF
CODEPAGE   NAME=page2	   START=0x1FC00		END=0x1FFF7		   PROTECTED
CODEPAGE   NAME=config     START=0x1FFF8        END=0x1FFFD        PROTECTED
CODEPAGE   NAME=devid      START=0x3FFFFE       END=0x3FFFFF       PROTECTED

ACCESSBANK NAME=accessram  START=0x0            END=0x5F
DATABANK   NAME=gpr0       START=0x60           END=0xFF
DATABANK   NAME=gpr1       START=0x100          END=0x1FF
DATABANK   NAME=gpr2       START=0x200          END=0x2FF
DATABANK   NAME=gpr3       START=0x300          END=0x3FF
DATABANK   NAME=gpr4       START=0x400          END=0x4FF
DATABANK   NAME=gpr5       START=0x500          END=0x5FF
DATABANK   NAME=gpr6       START=0x600          END=0x6FF
DATABANK   NAME=gpr7       START=0x700          END=0x7FF
DATABANK   NAME=gpr8       START=0x800          END=0x8FF
DATABANK   NAME=gpr9       START=0x900          END=0x9FF
DATABANK   NAME=gpr10      START=0xA00          END=0xAFF
DATABANK   NAME=gpr11      START=0xB00          END=0xBFF
DATABANK   NAME=gpr12      START=0xC00          END=0xCFF
DATABANK   NAME=gpr13      START=0xD00          END=0xDFF
DATABANK   NAME=gpr14      START=0xE00          END=0xEFF
DATABANK   NAME=gpr15      START=0xF00          END=0xF3F
DATABANK   NAME=sfr15      START=0xF40          END=0xF5F          PROTECTED
ACCESSBANK NAME=accesssfr  START=0xF60          END=0xFFF          PROTECTED

SECTION    NAME=CONFIG     ROM=config

STACK SIZE=0x100 RAM=gpr14
