I don't really want to butt-in on this thread, but it's going to be seriously remote that your code will spill out of the first page if you place it at the start of your program if it's only a few hundred bytes.

The beginning of most programs are taken up with hardware and software defines, aliases, config fuse definitions, EEPROM Data statements etc. None of these use any actual Program Codespace. The first executeable statement in your code will probably be...

Goto Start

You've then got the best part of 2k to play with until your...

Start:

statement. Actually I'm looking at one of my programs which has 794 lines of definitions, aliases, data statements, comments and such before the first byte of actual program gets executed... and yup, it's a "goto Start" statement, since I have a habit of putting all my commonly used subroutines at the beginning to save on codespace.