> > > It seems that each macro is evaluted TWICE =:-( ?! > > > The problem is, as you correctly assumed, due to the macro being evaluated > twice. However, this double evaluation is necessary because gpasm is designed as > a `two-pass' assembler. In many cases, a single pass is sufficient. However, if A few years ago I wrestled with the same problem, but in MPASM but I could not find that code with a quick search. I think the solution was to detect the assembler phae and do soemthing different in pass one and two (be carefull to avoid phase errors!). At least in MPASM a label that is only defined later has, in pass 1, before the definition, the value 0. I used this to detect the pass. Wouter -- http://www.piclist.com#nomail Going offline? Don't AutoReply us! use mailto:listserv@mitvma.mit.edu?body=SET%20PICList%20DIGEST