Vslav, а вы незнаете чем отличает 1801ВМ2 от 1806ВМ2? И насколько можно заменить 1806 на ваш verilog 1801вм2?
Вид для печати
Vslav, а вы незнаете чем отличает 1801ВМ2 от 1806ВМ2? И насколько можно заменить 1806 на ваш verilog 1801вм2?
А никто точно не скажет, потому что реверс 1806ВМ2 никто не делал, можно только верить разработчикам 1806 что они ничего особо архитектурно не изменили.
Заменить можно с достаточно высокой вероятностью, компьютеров на 1806 практически не было, если что и вылезет, то тот мизер софта требующего 1806 пропатчить проблемы не составит.
Ну, что тут скажешь... Ошибка полностью исправлена - теперь COMPARE SUCCESS выдается при любом способе адресации. Огромное за это человееское спасибо. Тест Т3 теперь честно сообщает "ПРОВЕРКА ОКОНЧЕНА".
Однако, проблема с тестами все же осталась. Теперь цепочка тестов все равно завершается сообщением "ДЕФЕКТ НЕЗАПЛАНИРОВАННОЕ ПРЕРЫВАНИЕ", причем сообщений этих выкатывается полтора экрана подряд:Если запускать любые одиночные тесты, то, начиная с теста Т3, это приводит к такому же результату. Придется мне снова запускать IDA и искать проблему дальше, что-то еще неправильно работает. Проблема явно вылезает при выходе из тестов обратно в монитор. При этом тесты 1 и 2 (ПЗУ и ОЗУ) рабтают без проблем.Код:@T0
*** test sistemnoj pamqti ***
prowerka okon~ena
*** test ozu ***
pamqtx 020000 -157776
pamqtx 000600 -017776
prowerka okon~ena
*** test prc ***
prowerka okon~ena
*** test terminala ***
wwedite sledu`}ie simwoly:
1 2 3 4 J C U K
prowerka okon~ena
*** test acpu ***
defekt 16
*** test ngmd ***
defekt nezaplanirowannoe prerywanie
defekt nezaplanirowannoe prerywanie
defekt nezaplanirowannoe prerywanie
defekt nezaplanirowannoe prerywanie
defekt nezaplanirowannoe prerywanie
defekt nezaplanirowannoe prerywanie
.....
Зато запустилась наконец RT-11. Также нормально грузится и XXDP, но толку от нее немного - там нет подходящих тестов. Наверное, если все будет работать нормально, на это незапланированное прерывание можно было бы плюнуть. Но тут уже дело принципа.
Тогда уж заодно внесите и исправление в контроллер прерываний, о чем я тут уже писал. Без этого исправления процессор всегда будет стартовать с адреса 0, а реализация МС1201 вообще невозможна.Цитата:
На выходных потестирую и внесу в репку
Нету. Реверс штука дорогая, все подряд реверсить не будешь :)
1801ВМ2 есть - и то хорошо.
- - - Добавлено - - -
Это не может быть прерывание от таймера? Отключено?
Конечно, надо добить, такой путь уже прошли, было бы обидно бросить.
Да, я помню. Но там не мгновенно - надо всю структуру проектов переделывать. Сейчас 3 процессора и 7 плат - и в итоге 21 проект, и еще процессор и три платы на подходе (С5, династия Тан и IGLOO) - будет 4x10 - 40. Перебор, и оно будет квадратично продолжаться с ростом матрицы, вот думаю как это все в линейный рост перевести.
Конечно отключено. Я пробовал включить - сообщений о незапланированном прерывании становится меньше, и при каждом запуске их количество начинает меняться. Что-то странное происходит с прерываниями.
Я уж думаю - может быть, это я неправильно управление памятью настроил? В документации на МС1201 информации об карте памяти практически нет, а схемотехнически все это спрятано в микросхеме D39 по имени 1801ВП1-013.
Из всхех кусочов информции, что удалось собрать, я предопложил, что
в юзерском режиме:
000000 - 157776 - RAM
160000 - 177776 - страница ввода-вывода с портами устройств
В режиме пульта:
000000 - 137776 - ничего нет
140000 - 157776 - ПЗУ 055
160000 - 177776 - RAM
Портов в этой конфигурации вообще нет, поэтому монитор с портами общается только через спецкоманды чтения-записи userspace.
И, судя по дизассемблированной части монитора, я если и ошибся, то не очень сильно. Буду в выходные искать дальше, откуда лезут эти незапланированные прерывания.
Насколько я понял, этот контроллер прерываний специфичен именно для ВМ2, поскольку через него реализовано безадресное чтение. У ВМ1 такого нет, а про LSI я не в курсе. И именно в реализации безадресного чтения и допущена ошибка.Цитата:
Да, я помню. Но там не мгновенно - надо всю структуру проектов переделывать
По-моему, достаточно исправить 1 файл vm2/hdl/wbc/lib/wbc_vic.v, он общий для всех плат, поддерживаемых этим проектом.
Вроде бы правильно.
А должен быть вообще один для всех плат и процессоров, с параметризацией. LSI тоже его использует (но не использует безадресное чтение).
Надо ковырять 055 чтобы понять когда выводится сообщение о незапланированном прерывании и пытаться поймать это место.