Это есть только в двух местах. В том же драйвере дисковода буфер (177712) грузится новым значением прям посреди процесса без всякой проверки. А вот в драйвере магнитофона когда в режиме СТОП заносится новое значение, то проверяется только регистр текущего значения (177714) и заново новое значение в буфер (177712) не заносится.
Вот набросок теста, который выявляет некоторые особенности.
На скринах три варианты работы:
Скрытый текст
Нормальный:
С несбросившимся регистром текущего значения:
С непрописавшимся буферным регистром:
Хотя, встречалась и такая ситуация:
[свернуть]
Интерес представляют только две нижние строчки дампа, а так же два числа итогового значения таймера, считанные друг за другом.
Изначально, таймер останавливается, в него загружается число 0xFFF, и идет обратный отсчет с приходом сетевого прерывания. Во время следующего прерывания от сетевого таймера, значение регистра текущего значения считывается два раза подряд.
Две строчки дампа представляют из себя фрагмет последовательного чтения регистра состояния в разные моменты времени. Первые 4 числа это чтение до чтения регистра текущего значения, остальные числа - после.
Как видно из второго примера, после чтения регистра текущего значения так и остался установлен бит 7, т.к. во всей строке чисел прописано 132. Так же по итоговым значениям таймера видно, что идет 0 (занчит регистр действительно был заблокирован), а потом уже 1493, что означает, что таймер все же работал правильно.
В третьем примере самый редкий случай. Хотя регистр текущего значения и разблокировался, но в итоге все равно получилось 0, 1523, что означает, что счет начался не с числа 0xFFF, а с числа на 20 больше, которое было до этого в таймере, и осталось, возможно, после работы драйвера дисковода. Так же видно, что при переходе через 0, регистр текущего значения заблокировался.
С учетом 2013 года запустил 13 раз тест TSTMR на УКНЦ с 1515ХМ2-001.
Представляем результаты:
Скрытый текст
Скрытый текст
[свернуть]
Скрытый текст
[свернуть]
Скрытый текст
[свернуть]
Скрытый текст
[свернуть]
Скрытый текст
[свернуть]
Скрытый текст
[свернуть]
Скрытый текст
[свернуть]
Скрытый текст
[свернуть]
Скрытый текст
[свернуть]
Скрытый текст
[свернуть]
Скрытый текст
[свернуть]
Скрытый текст
[свернуть]
Скрытый текст
[свернуть]
[свернуть]
Уважаемый Titus ждем ваших комментариев. Так на первый взгляд вроде бы нормально.
Titus, если не секрет, что за монитор у тебя?
С уважением, Александр.
Scorpion ZS-256 Turbo+ GMX-2048
SID-Blaster/ZX
Музей ретрокомпьютеров в Минске!
Здесь ничего нет => http://byteman.by
И здесь тоже --->>> http://bytespace.by
С любовью к вам, Yandex.Direct
Размещение рекламы на форуме способствует его дальнейшему развитию
С уважением, Александр.
Scorpion ZS-256 Turbo+ GMX-2048
SID-Blaster/ZX
Музей ретрокомпьютеров в Минске!
Здесь ничего нет => http://byteman.by
И здесь тоже --->>> http://bytespace.by
Ох, и пришлось же помучиться! Когда запускал с дискеты, то все нормально. Мне это надоело, да и дисковод с дискетой стало жаль, загрузился с IDE Flash-карты, переписал с дискеты тест. Запускаю - все нормально, никаких сбоев. Решил выключить УКНЦ, загрузится сразу с IDE и позапускать без обращения к дисководу. Вот тут-то и понеслось, почти через раз, то нормально, то со сбоем. Прочитал каталог с дискеты - не помогло.
Ну лучше сразу видеть:
Скрытый текст
Скрытый текст
[свернуть]
Скрытый текст
[свернуть]
Скрытый текст
[свернуть]
Скрытый текст
[свернуть]
Скрытый текст
[свернуть]
Скрытый текст
[свернуть]
Скрытый текст
[свернуть]
Скрытый текст
[свернуть]
[свернуть]
Ну теперь то, что надо?
Кстати, еще при значении 2600 очень часто переходная пара 0->65535.
Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)