> I moved the w_save definition after the defram, like this : > > defram gbankadr > w_save res 1 ;saved W during interrupt, mapped to all > banks ; > ; > defram 0 > > and commented out the udata_shr line... I wouldn't do that. That happens to work for this particular project because of the specific memory architecture of the 12F629 where all RAM is global. You are saying that W_SAVE is to go in bank 0. That won't work in the general case where there really is a separate bank 0 section that is not global. I think the "correct" way to fix this is to change the UDATA_SHR to DEFRAM COMMREGS_FIRST. That specifically puts W_SAVE in globally mapped RAM, but gives the DEFRAM macro the opprotunity to track the current segment and only emit the UDATA_SHR if not already in that segment. The thing that bothers me is why this is an error in the first place. The DEFRAM GBANKADR should result in .BANK0 UDATA, which should not conflict with UDATA_SHR. I assembled the INTR template configured for 12F629 and didn't get any error. That's why I wanted to see all your code, not just the little snippet where you think the problem is. I have a suspicion what is going on, but I can't tell one way or the other without seeing all the code. I also want to verify that any fix I make works in your case. > I have compared this with the original /pic/qqq_intr.aspic file, > and as far as I can see, the same problem is there. Search for > "defram gbankadr" and "udata_shr". Like I said, the template assembles fine for me with 12F629 as the processor. ***************************************************************** Embed Inc, embedded system specialists in Littleton Massachusetts (978) 742-9014, http://www.embedinc.com -- http://www.piclist.com#nomail Going offline? Don't AutoReply us! email listserv@mitvma.mit.edu with SET PICList DIGEST in the body