Подход к декодированию команд и операндов для VAX сильно отличается от того, как я сделал для PDP-11.
Отработал на CMPB, а потом в лоб добавил MOVB
С MOVB повезло - те же режимы адресации
Помимо кнопки Код проверил (более менее) кнопку Сброс
Подход к декодированию команд и операндов для VAX сильно отличается от того, как я сделал для PDP-11.
Отработал на CMPB, а потом в лоб добавил MOVB
С MOVB повезло - те же режимы адресации
Помимо кнопки Код проверил (более менее) кнопку Сброс
Понемногу движение вперёд
Часть функционала достаётся почти даром - как результат доработок для PDP-11, но встречаются и свои трудности. Одна из них - БОЛЬШОЕ адресное пространство. Поэтому некоторые решения, прокатывающие для PDP-11 - не подходят для VAX-11..
Команды процессора добавляются по принципе - та, накоторый дизасм остановился
- - - Добавлено - - -
Надо найти листинг побольше.. А то описание в документации - так себе - не очень много примеров синтаксиса.. приходится гадать - насколько правильно генерируются команды...
Последний раз редактировалось Hunta; 10.10.2025 в 00:28.
xolod(09.10.2025)
Уф... Я ошибся - у VAX-а может быть до 6 операндов
Но DisAsm-у всё равно - сколько операндов - окна операндов он создаёт динамически - количество указывается в описании соотвествующего объекта.
- - - Добавлено - - -
В общем, на текущий момент все однобайтные инструкции для декодирования описаны, но
- один режим адресации (индексный) пока не реализован - надо подумать, как его вписать в модель аттрибутов инструкции.
- инструкция CASE - отдельный прикол - после неё может идти МНОГО описания смещений - как с ними работать - надо подумать, но скорее всего будет ручной вариант
- у инструкции EDITPC один из аргументов - ссылка на таблицу описания комманд-аттрибутов - которую тоже можно распарсить, но пока не.
- результат дисзасм пока никак не проверить
- может, что-то ещё
- - - Добавлено - - -
А, да, оказывается для VAX-ов ещё делалось векторное расширениеДо него тоже пока - не
![]()
Индексный режим вроде тоже ожил. Зачистка огрехов. Ну и в отличии от PDP-11, где я программу понимаю в лёт, тутова не всё так простова...
- - - Добавлено - - -
Ещё движение вперёд
Теперь надо придумать способ, как всё это проверить..
В общем, ещё некоторое время погоняю дизасм для VAX-ов на предмет ошибок, а так же, по возможности, поудаляю из визуализации зависимости от PDP-11 и VAX и на этом, наверное, с дизасмом для VAX-11 всё. Попробую так же поискать исходники ПЗУ начальной загрузки - вдруг получится найти под какую-то модель - тогда можно будет оценить точность дизасма. Так надо подумать над созданием стенда (на simh), что бы как никак, но можно было транслировать-собирать и проверять качество дизасма. Собственно - то, что я делал для PDP-11, но там всё прощё было - опыт, как никак, присутствовал..
В общем, листинг, более менее совпадающий с двоичным файлом - нашёлся, так что есть на чём проверить. Чем и буду заниматься - ошибки в дизасме точно есть, уже убедился..
- - - Добавлено - - -
В декодере команд нашлась существенная ошибка. Она влияет на небольшое количество команд, но часть из них связана с переходом на другие команды - а вот это уже влияет на процесс дизасма весьма существенно. Как поправить - уже понятно, но.. придётся изменять описание команд для декодировщика. Порядка 250 штукТо есть долго и нудно. И из-за нудности - риск ошибиться.. Порядка 77 уже поправил (с ними было легче), надеюсь - без ошибок
![]()
xolod(13.10.2025)
С любовью к вам, Yandex.Direct
Размещение рекламы на форуме способствует его дальнейшему развитию
Поправил ошибку, связанную с описанием длины операндов (см. пред сообщние) - в описании команд и в декодере. Вроде теперь всё выглядит норм и даже начинает совпадать с листингом.
Как обычно - опять проверки. Визуальные и на совпадение с листингом. Плюс доработка команд и отвязка зависимостей визуализирющей части от PDP-11 и VAX-11
И ещё немного вперёд...
Последний раз редактировалось Hunta; 14.10.2025 в 10:15.
Привет, попробуй вот это тут совсем мало, но хоть что-то.
https://zx-pk.ru/threads/35186-tsp-m...=1#post1183057
Да
Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)