А вот тут вы, батенька, неправы... Прерывание общее для TDBE/RDBF
(и ошибок, если включено). Соответственно, чтение регистра
состояния в прерывании обязательно, для правильной обработки. А при
чтении данных после чтения регистра состояния, все ошибки
сбрасываются аппаратно... То есть, читаем состояние в какую-нибудь переменную, потом, если в ней есть RDBF, обязательно вычитываем данные, а дальше уже по желанию, но биты ошибок уже из переменной.