нуда, обычно флаг выскакивает по завершении записи и новую запись
не начинаем пока этот флаг не встанет и не сбросим. Это на
внутреннем епром, на внешнем программер сам должен контролировать.
А код у коллеги на ассемблере и чужой, буквально каждую строчку
надо под лупой рассматривать. Контроль распределения ресурсов
важнейшая задача на асме (в данном случае я бы очень пристально
смотрел на перехлест прерываний от таймеров с любым другим и что
куда пишется ) + посмотрел бы не прилетает ли какое-нибудь прерывание пока операция умножения/деления идет, тут тоже засада может быть, в обработчике что-нибудь пишется по одному и тому же адресу. Вопчем, не надо лениться... )))