I'm new to this list so I hope this makes it to the right place! Yes you can avoid having the linker place code that straddles a page boundary. I do this all the time. In the linker file you need to define a codepage that is one page in length (or shorter)... Example excert from (.LKR) linker file... CODEPAGE NAME=vectors START=0x0 END=0x27 PROTECTED CODEPAGE NAME=page0 START=0x28 END=0xFF CODEPAGE NAME=page1 START=0x100 END=0x1FF PROTECTED CODEPAGE NAME=page START=0x200 END=0x0FFF CODEPAGE NAME=config START=0xFE00 END=0xFE0F PROTECTED SECTION NAME=JMPTBL ROM=page1 The 3rd CODEPAGE line 'defines' an area of memory from 0x100 to 0x1FF and gives it the name "page1" The SECTION line tells the linker to put any code modules named JMPTBL in page1 Then in the .ASM file you need to name the code areas like so... JMPTBL CODE Then any code after the "JMPTBL CODE" directive will be placed between 0x100 and 0x1FF. Using this method gives you very good control over where the linker puts things. If you simply start your code segments like so (without the name )... CODE 'code starts here' Then the linker will stick the code in any unprotected codepage it finds. Typically I have some things in a .ASM file which I don't care about page boundarys and some things I do care. So I write the code like so... JMPTBL CODE 'Stuff that I don't want straddling a boundary (ends up at 0x100 to 0x1FF)' CODE 'Other stuff that I don't care about page boundaries (ends up in one of the unprotected codepages)' This is covered in the MPLINK manual, but it does take some thinking about it before it all makes sense. I suggest you lookup the CODE directive in the MPASM manual, and also the CODEPAGE and SECTION directives in the MPLINK manual. Clear as mud? -Mark _______________________________________________ http://www.piclist.com View/change your membership options at http://mailman.mit.edu/mailman/listinfo/piclist