> L_CALL MACRO LABEL > IF ((HIGH($)&0x18) == (HIGH(LABEL)&0x18)) ; same page, generates no This assumes the address of LABEL is know when this macro is run, which I think isn't because you could be inserting variable amounts of code in front of it. I'm not totally sure because I never use absolute mode. > extra code > MESSG "Call on same page, use normal CALL" LABEL > NOP ; redundant NOP's due to compiler linker funkiness > NOP ; What are you referring to here? I can't imagine why you need NOPs here. > CALL LABEL > ELSE > MESSG "Using pagesel directive, call crossing page boundary" LABEL > PAGESEL LABEL > CALL LABEL > ENDIF > ENDM By the way, your email comes thru the list with your address as the reply address. I'm getting tired of manually changing this back to the list address to reply to you. Please fix this if you want continued responses. ******************************************************************** Olin Lathrop, embedded systems consultant in Littleton Massachusetts (978) 742-9014, olin@embedinc.com, 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