Гляньте в Поиск Файлов ДВК УКНЦ, я там выложил доку к 377-й
Гляньте в Поиск Файлов ДВК УКНЦ, я там выложил доку к 377-й
Бессмыслено делать в микрокоде отдельную обоработку случаев включения питания и аппаратного сброса. Мусор в регистрах после сброса/включения питания никого не интересует, поэтому преднамеренный аппаратный/микропрограммный сброс маловероятен. тест подтверждает: [http://s017.radikal.ru/i407/1601/ae/8ec4657c13dct.jpg]
После подачи питания:
R0 - 042400
R1 - 000000
R2 - 000000
R3 - 000200
R4 - 040401
R5 - 100000
Тест стеков: [http://s015.radikal.ru/i331/1601/ee/712bc4d0c732t.jpg]
А вот тут засада - адрес возврата сохранился по адресу 17772. То есть таки стек пульта есть, но не повторно входимый - новый HALT его реинициализирует, и можно сохранять только адреса возврата и, вероятно, PSW/PC прерывания. По (SP) оно недоступно получается (mov (SP), (R1) использует стек ядра), ну и как с этим работать?
Тест зависания, тайм-аут завершился, но стал большой - примерно 240 тактов. Далее просто переход на адрес 4 (не по значению вектора) - [http://s017.radikal.ru/i416/1601/51/c89d67af4a92t.jpg] (не влезло, тест переделал)
Update: переход таки не на 4, а по @4 (переделал тест, положил в @4 осмысленный адрес), но читается только первое слово вектора, PSW игнорируется, о как.
Как это делает прошивка - через CALL вызывает подпрограмму сохранения/восстановления всех регистров, включая SP.
Ходят слухи, что прерывания в режиме HALT сохраняют только PC, но сначала лучше проверить, как в HALT-моде ВМ3 выполнится команда IOT.
- - - Добавлено - - -
От ВМ3 можно ждать любых подвохов, поэтому следующий тест проверяет работу команд JSR и RTS :
Код:.ASect
. = 0
Jmp @#Next // Точка входа пульта.
. = 24
.Word Start // Адрес старта.
.Word 340
Start:
Mov #2222, SP
Mov #2, R1
HALT // Установить HALT-моду
L1:
Mov R0, (R1)
RtS R0
Next:
JSR R0, L1
Nop
Работает со стеком пультового режима - сохраняет-извлекает адрес по 17772: [http://s020.radikal.ru/i717/1601/b4/a09b6958b224t.jpg]
По IOT вообще непонятки - [http://s017.radikal.ru/i426/1601/cf/01c056791debt.jpg]
Считывает 16, потом 14, и переходит на 0, выходит IOT не используется в пульте?
Приветствую!
Мне тут один знакомый подсказал что здесь выясняется чем отличаются ранние ВМ3 от выпущенных с 89 года.
Сам-то я железом не увлекаюсь, но имеются в коллекции пара экземпляров возможно представляющих интерес
для сообщества. Продать их конечно не могу, камушки редкие, особенно тот что ОП, но дать на время могу.
У раннего крашеный алюминиевый радиатор по типу 1107ПВ2 и у него отломана одна нога, таким уж достался
около 5 лет назад от человека которому тот попал с ПЗУ-хой 573РФ3 от опытной платы МС1201.03
Сама плата и ему не досталась. Он хотел их запустить в обычной плате но что-то не получилось, возможно
и проц дохлый. Хотя чел и предполагал что такой ВМ3 не должен нормально работать с серийных платах.
С его слов, по идее такой ВМ3 не выполнял часть команд, которые эмулировались программно затычкой в ПЗУ
К остаткам контакта от недостающей ноги в принципе можно что-то приколхозить, при большом желании
Фоты:
http://itmages.ru/image/view/3566059/5a297aed
http://itmages.ru/image/view/3566060/ab042f81
http://itmages.ru/image/view/3566062/d5df8700