Hello Tom, Jan-Erik, Olin & PIC.ers, I've finally got the linker to run -it looks properly-, the output .lst file makes sense, as does the .map. The change that made everything come together was in the _way_ I was calling the macro file. Source code can be modularised easily into e.g. main, maths, lcd, tables or whatever depending on the type of apps. you are involved in or anticipate. My original 16Fxxx code was written as absolute, so everything was in one source file including a huge chunk of macros near the top. Moving to 18Fxxx was going to bring many changes & it makes sense to upgrade _everything_ to do with the environment in one foul swoop. So, 1. Tease out the main loop, state tables and the like > Main.asm right? - yup 2. Round up the maths routines > maths.asm right? - yup 3. Herd the macros > macros.asm right? *Wrong* Macros are not code as such, they're just scripts which substitute their content each time they're invoked by the macro name in the calling source code, wherever it might be, main, maths etc. That means that filling a file with macros & calling it `macros.asm' then putting it in the project `source file' section means the linker expects it to be full of project source code. Of course it's not so. This revelation hit me early this a.m. during constitutional sit-down manoeuvres. A time when a person can do nothing at all apart from *think*. Since macros are just substitute scripts, that makes them akin to definitions within, say the include files like 18F452.inc. After re-naming the file to `macros.inc' and putting it in the INCLUDE part of the project, the whole shebang started to come to life. After cleaning & massage it all behaved -apparantly- as it was meant to. It could be that I've hit upon a dirty way to do this and maybe there's a better text-book style I should be using. I fancy using Olin's environment, but I'll only tackle that after I've got more running confidence with the insides of linkers and suchlike. I really must start eating a lot more cabbage. Thanks, to you guys. I owe you all a beer or six. Next time you're in Johannesburg....... best regards, John email from the desk of John Sanderson. JS Controls, PO Box 1887, Boksburg 1460, Rep. of S. Africa. Tel/Fax 011 893 4154, Cell 082 741 6275, web http://www.jscontrols.co.za Manufacturer & purveyor of laboratory force testing apparatus & related products & services. -- http://www.piclist.com hint: To leave the PICList mailto:piclist-unsubscribe-request@mitvma.mit.edu