А почему сразу разрешается прерывание? Ведь до этого в TPB записывается значение, соответственно в TPS сбрасывается бит готовности в 7-ом разряде. Поэтому установка бита разрешения прерывания происходит при сброшенном бите готовности. А вот когда 1801ВП1-035/065 передаст этот байтик в терминал, то тогда и появится бит готовности, ну и произойдет прерывание.
1801ВП1-035/065 имеют буферный регистр. Т.е. если ничего не передается, то первый записываемый байт из буферного регистра сразу же передается в сдвиговый и начинает передаваться со скоростью 9600. Следующий записанный байт остается в буферном регистре и ждет освобождения сдвигового. Вот когда сдвиговый освободится, то он перепишется туда, ну соответственно установится и бит готовности. Поэтому в тесте специально идет запись двух нулей в TPB. При первой записи значение практически сразу же попадает в сдвиговый регистр, ну и соответственно устанавливается бит готовности, а вот при записи второго байта оно уже остается в буферном регистре и ждет освобождения сдвигового, соответственно и бит готовности сброшен. За это время ожидания исполнятся и CLR STATUS, и MTPS STATUS. Ну и начнет выполняться WAIT.



Ответить с цитированием
Размещение рекламы на форуме способствует его дальнейшему развитию 
