С любовью к вам, Yandex.Direct
Размещение рекламы на форуме способствует его дальнейшему развитию
Смысл в том, что ты читаешь 16-битное значение атомарно. Команда копирует значение счетчика в защелку. Защелку можно потом читать долго и медленно, она будет содержать значение, которое было в нее сфотографировано в момент команды. Таймер при этом продолжает счет без останова.
Больше игр нет
Ну, возникшие у меня вопросы по поводу ВИ53 и режима "защёлки" (чтения на лету), я кажется снял с повестки дня.
По ходу тестирования, наткнулся на условие, которое даёт сбой в эмуляторе Emu80.
И собственно тест во вложении - это иллюстрация условия для сбоя.
Тест следующий:
Левые две колонки - это 255 значений счётчика ВИ53 считанные без использования команды "защёлки".
Следующие две колонки - 128 (верхних) значений счётчика ВИ53 считанные с использованием команды "защёлки", и нижние 127 значений считано снова без использования команды "защёлки".
Правые колонки - это собственно "XRA" - разница между предыдущими, для наглядности.
Пояснение моего мнения по поводу Emu80.
Команда "Защёлка" работает, если ей пользоваться, или не пользоваться.
А вот если как в утилите "Wave AY" - один раз дал команду и забыл про неё... тут возникает проблема, т.к. команда "защёлка" оставляет значение счётчика заблокированным, даже после того как оба байта считаны. Хотя блокировка должна сниматься после чтения всех байт заявленных в слове управления.
Во вложении rom теста и скриншот с реала 02-го.
Pyk(20.01.2024)
В 90-ых, у меня был знакомый, которому я передавал свои программы для бета-тестирования.
Он каждый раз ухмылялся, и говорил, что тестировать штатные возможности нет смысла, типа я сам их уже проверил, пока кодил.
И начинал извращаться, задавая не штатные опции, нажимая не предусмотренные комбинации клавиш, и т.д. и т.п. ...
Вот решил я проверить, как работает команда "защёлка", если её не правильно применять...
Тест во вложении, вариация предыдущих:
Счётчик настроен на работу в режиме "слово" - 2-Байтный счётчик.
Левые две колонки - чтение регистров ВИ53 без использования "защёлки".
Следующие две колонки - чтение регистров ВИ53, с командой "защёлка" перед чтением каждого байта.
Правые колонки - "XRA" - разница между предыдущими, для наглядности.
Аааагаааа, ни кто не думал, что над ВИ53 издеваться будут
Во вложении rom теста, исходник и скриншот с реала 02-го.
Дополнительный тест показал, что если "защёлка" уже активирована, то последующая подача этой команды просто игнорируется (реальным ВИ53), а не приводит к очередной фиксации нового значения счётчика (как в эмуляторах).
Последний раз редактировалось KTSerg; 03.11.2023 в 14:31.
Прошу прощения, что на некоторое время пропал, но лучше поздно, чем никогда. Появилось, наконец, время заняться эмулятором, исправил я этот баг. Дело оказалось именно в этом:
Это тоже учел:
Правда, скрины тестов 5 и 6 немного отличаются от реала, причем отличаются сильнее, чем в других эмуляторах. Видимо, какие-то еще нюансы эмуляции ВИ53 я не учел, буду еще смотреть. Тест TEST_VI53_5 был без исходника, можно исходник попросить?
Также после этих исправлений в emu80 заработал exolon
Изменения в репозитории, если нужна сборка под windows - сделаю.
Последний раз редактировалось Pyk; 20.01.2024 в 21:56. Причина: опечатка
Doronetty(20.01.2024), Improver(21.01.2024), ivagor(20.01.2024), metamorpho(20.01.2024), parallelno(13.03.2024), svofski(20.01.2024), tnt23(20.01.2024)
http://bitsavers.trailing-edge.com/c...ual_197509.pdf
Страница 2-13 HALT SEQUENCES -- вербальное описание.
Таблица инструкций на странице 2-18 показывает что делают все инструкции на каждом такте каждого цикла, HLT тоже.
Рисунок 2-12 на странице 2-14 показывает блок-схему состояний при исполнении HLT. Рисунок 2-11 на той же странице -- временная диаграмма входа в режим HALT.
Больше игр нет
parallelno(12.01.2024)
svofski, я правильно понимаю что HLT выполняет 2 машинных цикла, и зацикливается в Twh в ожидании прерывания?
parallelno, насколько я могу судить по всем доступным мне материалам, да.
Больше игр нет
svofski, тогда получается что в твоём эмуляторе ошибка. Если я не ошибаюсь то у тебя HLT зацикливается на первом машинном цикле.
Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)