I just found out the hard way that the new version of ASM30 has an important incompatibility to older versions. I just upgraded MPLAB to 7.11 from some older release of version 7. I used to be able to do IFDEF on SFR symbols to automatically configure code to the particular processor. However, these IFDEFs now always indicate the symbol is not defined. After some rummaging around, I think this has to do with different treatment of external symbols. Previously an external symbol would be "defined" as reported by IFDEF, but is not in the new version. In other words the following snippet of code would act differently on old and new versions of ASM30: extern xxx ifdef xxx .print "xxx defined" .else .pring "xxx undefined" .endif This really messes up my code, and I'm trying to figure out how to address this problem. I haven't heard back from Microchip whether this is a bug or an intentional change. If the latter, it's going to take some work to get around. The only robust method I can think of is to write code that interprets the linker file, extracts definitions of symbols to fixed addresses, and automatically creates an include file containing those symbols for each processor. Writing the general parser for the complete linker file syntax will take a day or two, and a simple parser will be vulnerable to legitimate changes to linker file structure. Yuck. ***************************************************************** Embed Inc, embedded system specialists in Littleton Massachusetts (978) 742-9014, http://www.embedinc.com -- http://www.piclist.com PIC/SX FAQ & list archive View/change your membership options at http://mailman.mit.edu/mailman/listinfo/piclist