This might be stupid or asked at least a thousand times, but: In MPASM, how do I allocate a FILE REGISTER which is LOCAL to a macro. At the moment I use something like cblock _file_1#v($) _file_2#v($) endc local send_shift_register = _file_1#v($) local bit_counter = _file_2#v($) This is crude, but it works. Sadly I can not hide this ugly construct within a macro, because that would make the local local to THAT macro, not to the 'calling' one. Isn't there a more direct way?