KTSerg, Спасибо за тестик, благодаря ему удалось обнаружить ошибку. Обновил VV, ссылка в подписи.
Вид для печати
KTSerg, Спасибо за тестик, благодаря ему удалось обнаружить ошибку. Обновил VV, ссылка в подписи.
мысли о МикроДосе
Я вот думаю, оригинальная утилита была для МикроДоса, и в ней нет отключения таймера. Значит, скорее всего, МикроДос которым пользовался автор утилиты, сам отключал таймер после вызова "RST 0" - выхода из утилиты.
Но в том МикроДосе, который я пробовал, писк оставался, значит тестируемый МикроДос не отключал таймер.
Интересно, каким МикроДосом пользовался автор утилиты. К сожалению, на образе дискеты с утилитой в Базисе, нет МикроДоса. Значит остаётся надеяться на знатоков, разбиравших МикроДосы, и знающих, есть-ли такие версии, которые при перезапуске инициализируют таймер.[свернуть]
Всё ломаю голову, что такое "чтение на лету" в ВМ53...
В утилите "Wave AY", оно используется как функция. Типа включил один раз до начала цикла чтения регистров, и наслаждайся "чтением на лету".
А вот ни фига подобного...
"Чтение на лету" это только команда (разовая акция) блокирующая изменение буфера чтения регистров, пока он не будет прочитан. Т.е. по этой команде, сам счётчик продолжает изменяться, а буфер чтения нет, он ждёт когда его прочитают.
Уже сделал один тест на реале и вроде подтвердил эту догадку.
Нужно уточнить и проверить некоторые детали. Когда проверю, выложу результаты.
Смысл в том, что ты читаешь 16-битное значение атомарно. Команда копирует значение счетчика в защелку. Защелку можно потом читать долго и медленно, она будет содержать значение, которое было в нее сфотографировано в момент команды. Таймер при этом продолжает счет без останова.
Чтение на лету, это какое то неправильное название. В нормальной литературе эта команда называется "Защелка", предназначена для корректного чтения 16ти битного счетчика, т.к. его чтение проходит в два шага, и содержимое счетчика за это время успеет изменится.
Я когда исходник смотрел, удивился, зачем дают команду защелку, а потом чуть ли не бесконечно читают счетчик :)
На русском мало подробной инфы по ВИ53. Впервые нашел упоминание про этот режим, и в доках он именно так (чтение на лету) и называется.
Я вот совсем не изучал ВИ53 так глубоко. Когда изучал исходник, думал "так и надо", а внятного объяснения в доках не нашел.Цитата:
Я когда исходник смотрел, удивился, зачем дают команду защелку, а потом чуть ли не бесконечно читают счетчик :)
Вот и пытаюсь "совместить круг с квадратом"... , а оно в голове ну ни как не укладывается.
Да ещё результаты тестов на всех эмуляторах разные, что не добавляет ясности.