Не очень понял, зачем нужна промежуточная переменная.
Контроллер не может сам сбросить конкретный бит в слове управления?
Можно в макросе использовать статические переменные (с ключевым словом static) - они сохраняют свои значения между вызовами.Но т.к. в самом макросе нельзя хранить значения между вызовами
Или можно использовать для хранения этих значений регистры панели.