Hi, Tim H. wrote: > >org 0 >goto MAIN > >MAIN >....code here.... >A call to delay which is in ISD.inc as well as the actual ISD interface code. > >include ISD.inc > Well, you are trying to use the include file function of the assembler to something it was not really meant for. What you want to use though is 're-locatable' modules or code. Someone mentioned Olin's published work, I haven't looked at it myself but I belive there are alot of things there that could help you. However, read up on the re-locatable code in the linker manual. Basiclly you need to change how you 'allocate' (reserv) memory, use: MY_MODULE UDATA MyVar RES 1 Instead of the absolute: CBLOCK 0xXXX MyVar:1 UDATA needs to be defined in a linker control file, there are several available in the mplab directories i belive.=20 Then you need to add GLOBAL to function that is to be exposed outside your module: MY_NEAT_FUNC GLOBAL MY_NEAT_FUNC ;code... Then write an .inc file containing the EXTERN keyword for your module: EXTERN MY_NEAT_FUNC Now include this inc file in the module you need to access it and leave the rest to the linker. The module containing the function ofcource needs to be added to the project. Fun stuff :) /Tony -- http://www.piclist.com hint: PICList Posts must start with ONE topic: [PIC]:,[SX]:,[AVR]: ->uP ONLY! [EE]:,[OT]: ->Other [BUY]:,[AD]: ->Ads