> Well, drat, just when I thought I had things figured out, up comes > another strangeness. The following code shows that I assign zero to a > variable called DVAR, which I would certainly presume is located in data > memory. (If not, then I am misunderstanding how things work). Then, > just as a test, I assign zero to "MyStart" which is not defined in data > memory, but is clearly in program memory. This is happily accepted by > MPASM (although the address is truncated to 8 bits). Should not this > have been flagged as an error??? Nope. MYSTART is merely a symbol that has a certain value, in this case 3FEh. The assembler does not maintain a data type for MYSTART, and does not remember that it was defined as a program memory address. Therefore, the instruction movwf mystart is the same as movwf h'3FE' which writes the value in W to the RAM location 3FEh. ***************************************************************** Embed Inc, embedded system specialists in Littleton Massachusetts (978) 742-9014, http://www.embedinc.com -- http://www.piclist.com hint: The list server can filter out subtopics (like ads or off topics) for you. See http://www.piclist.com/#topics