Ну, возникшие у меня вопросы по поводу ВИ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.
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 зацикливается на первом машинном цикле.
Если я правильно понимаю логику кода, то у тебя HLT зацикливается после исполнения 4 тактов. А по идее должно выполниться 8 и далее зациклится выполняя по 4 такта. Или я ошибаюсь?
Pyk (20.01.2024)
parallelno (13.01.2024)
Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)