С любовью к вам, Yandex.Direct
Размещение рекламы на форуме способствует его дальнейшему развитию
Да, это похоже на правду - я отрезал ножку ВП1-037 от шины данных, и старший разряд стартового вектора не сформировался.
Нормальный такой ВМ1 - на 177700-177712 формируется снаружи и RPLY и данные, хотя чтение идет "самим собой" внутренних регистров. Но это вполне допустимо. А вот для 177714-177716 - формирует сам для себя только RPLY - данные внешняя система должна уж как-нибудь сама предоставить. Что в-общем то нарушает протокол обмена МПИ - RPLY должен снаружи формировать модуль, предоставляющий данные, а не схема внутри процессора.
В описании сказано, что для регистров SEL1 и SEL2 формировать сигнал RPLY не надо, достаточно успеть выставить данные или записать их. Наверное это сделано для упрощения внешней схемы. А если регистров нет, то в данном случае будет читаться ноль, и запуск процессора всегда произойдет с нулевого адреса. А по поводу снаружи регистров 177700-177712 - их можно прочесть другим устройством через механизм прямого доступа к памяти. Плюс к тому же они разные в многопроцессорной системе, и программа может прочесть регистры любого процессора таким образом.
Очень любопытно!
Значит ли это, что если SEL1 & 0xFF00 читается как 000000 - старт будет с адреса 0100000, а если как 020000 - старт будет с адреса 0120000 ..
...
Последний раз редактировалось Patron; 17.04.2013 в 13:30.
Народ, подскажите пожалуйста.
Разбираюсь с 1801ВМ1.
Если на шине AD (15...0) такие уровни 0000 0000 0011 0001, то это число 61 или 177716 ?
Другими словами - +5 вольт на линии - это ноль или единица?
Нет ничего более вечного чем то, что обмотано синей изолентой
На МПИ БК принято за лог. 1 уровень 0в, за лог. 0 +5в.
Приведенный двоичный адрес соответствует 177716 - если осциллографом мерить.
Если ВМ1 выдает этот адрес, он должен ( в БК ) одновременно выдавать уровень 0в. на линии чтения системного порта 177716 - см. Э3 БК.
( Т.е. при начальном пуске требовать адрес старта с 177716 - старший байт ).
Спасибо большое!
177716 - это я к примеру привёл. Потому, что (как я понял) проц стартует и обращается к этому адресу за старшим байтом адреса перехода.
Разбираюсь в одном приёмнике, управление которого собрано как раз на К1801ВМ1.
Прочитал ПЗУ-шку, теперь ищу дизассемблер.
Последний раз редактировалось darkstar; 05.11.2013 в 13:00.
Нет ничего более вечного чем то, что обмотано синей изолентой
IDA
Ок.
Уже установил IDA 6.1 и поставил надстройку от Patron вот отсюда:
http://zx.pk.ru/showthread.php?postid=367209
правда она для версии 5.2, но вроде как работает.
Некоторые команды не распознаются, например
.Word 7002 или
.Word 7601
но возможно я уже залез в блок констант.
Межблочная шина МПИ. Думаю зацепиться на неё и посмотреть что куда пересылается.
Последний раз редактировалось darkstar; 05.11.2013 в 19:27.
Нет ничего более вечного чем то, что обмотано синей изолентой
Разрешите сообщить начинающему ( программисту ), что самой лучшей ковырялкой из всех, что за 28 лет я видел - это DESS V5.00 от ОС ДВК ( она же RT11 V5.01 )
дизассемблер там написан чуть ниже таблицы чисел - а транслировать можно
командой "T" ( пословно ). Листинг трансляции можно вывести на принтер - но поблочно ( что несколько смущает начинающих хакеров ). Гугля в помощь.
Однако тот DESS, что поставляется в комплекте с эмулем ДВК - непрофессионально
дополнен Хексами, которые в принципе не нужны на DEC-системах, и по этому
там испорчен набор команд в ассемблере, в отличии от DESS V5.00.
*
Вообще у Dessa есть несколько недостатков:
1.Нельзя назначить виртуальный адрес исследуемого массива - только физический
( особенно неудобно расковыривать дурные ПЗУ, код которых неперемещаем ( 95%))
2.Нет команды заполнить массив числами - для писателей пригодилось бы.
3.Нет команды перемещения блоков байтов - приходится ручками перелопачивать кучи цифр.
4.Потерял вариант, где вывод ассемблера был не на принтер/девайс, а в файл .
5.Других недостатков за 25 лет работы и написания кучи ПЗУ не выявил.
Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)