> >As a side note: > >I thought that you could declare a macro label as local thus avoiding the >above #v complications? I have never tried this: > >decf3 macro var > > local enddecf3 > > decf var,F > incf var,W > btfss STATUS,Z > goto enddecf3 > decf var+1,F > incf var+1,W > btfsc STATUS,Z > decf var+2,F > >enddecf3: > >endm > >Is this right? > > >Stuart. > i just tried this and it works. i thought that the local is for valiable and not for label but it really works. btw, it is possible to change incf var,W btfss status,z goto enddecf3 to incfsz var,W goto enddecf3 and save one instruction. ; decrement three-byte value decf3 macro var decf var,F incfsz var,W goto _sbl#v(sbl) decf var+1,F incf var+1,W btfsc STATUS,Z decf var+2,F _sbl#v(sbl): sbl = sbl+1 endm ; decrement four-byte value decf4 macro var decf var,F incfsz var,W goto _sbl#v(sbl) decf var+1,F incfsz var+1,W goto _sbl#v(sbl) decf var+2,F incf var+2,W btfsc STATUS,Z decf var+3,F _sbl#v(sbl): sbl = sbl+1 endm Ivan Cenov okto7@botev.ttm.bg http://www.geocities.com/SiliconValley/Network/9276/ Do what have to do, let happens what it wants.