Хмм, там XCH всего в 2 местах используется

Пересылок из регистров в аккумулятор и обратно - в самом деле более чем. И операций с битами - немерено. Программа не моя - в наследство досталась.
Другое дело, что с квазидвунаправленным портом придется как-то разбираться