Встречал терминологию что ODT в микрокоде называется microODT а написанный для исполнения как обычные инструкции например для "хальтрежима" T-11 - MacroODT
И похоже что идея macroODT c T-11 и позаимствована зеленоградцами
Вид для печати
Встречал терминологию что ODT в микрокоде называется microODT а написанный для исполнения как обычные инструкции например для "хальтрежима" T-11 - MacroODT
И похоже что идея macroODT c T-11 и позаимствована зеленоградцами
И даже стека, но вполне определённые. В каком то документе мне попадались рекомендации-правила при написании подгружаемых в EEPROM аппаратных загрузчиков - в том числе, говорилось прo то, какие PAR-ы и как можно использовать. Не помню насчёт PDR-ов, но с ними возможны нюансы - не все биты доступны для записи. Какие - надо смотреть описание :)
Да, описание есть и вроде как сходится с реальностью. Досконально я не проверял, ибо список команд очень небольшой (см выше) и на беглый взляд всё вроде совпадает.
- - - Добавлено - - -
Кстати - одно из существенных отличий ПЗУ MXV11-B и KDJ11-B от 134-ого ПЗУ - это не ПЗУ проверки-отладки, они не заботятся не только о сохранении-восстановлении регистров, они вообще проводят полную реинициализацию комп при выходе в них, в том числе, можно сразу забыть и о настройках ДП :) В этом плане они ближе к BIOS-ам на IBM PC.
Ну и, опять же - в отличии от 134-ого, ПЗУ от KDJ11-B не предполагает наличие оперативки :) А вот (более ранний?) вариант ПЗУ MXV11-B использует примерно килобайт ОЗУ в район 2xxx-3xxx адресов (не помню точно).
Я долго не мог понять, как ПЗУ от KDJ11-B обходится без оперативки - вектора типа 4 и 10, а так же BPT, TRAP и EMT он вполне активно использует :) Только потом дошло, что с ДП они (вектора) могут располагаться где угодно - хоть в области ПЗУ :)
В принципе всё логично, аж три группы регистров для трёх мод, а занята одна группа :)
Для тестов и загрузки более чем достаточно ...
По две группы для каждых из трёх режимов работы проца - PDR не в счёт, ЕМНИП, то есть всего шесть.
Но.
Часть из них используется по прямому назначений - для режима ядра.
Осталось четыре.
Ещё одна группа - под стек.
Осталось три - или 18 слов :)
Максимальная глубина стека - 8 слов - и они будут использоваться как при вызове процедур (одно слово), так и при прерывания (аппаратных и программных), о чём нельзя забывать, особенно учитывая, что активно используются BPT, TRAP и EMT - а у них два слова, то есть максимальная глубина вложенных вызовов - порядка 6-ёх, но легко добраться и до 4-ёх. В общем - код ещё тот у ПЗУ.
MMU в архитектуре PDP-11 отключаемый
А вот без MMU интересно режимы пользователя-ядра в psw устанавливаются-хранятся?
- - - Добавлено - - -
и еще вопрос
у ВМ3 инструкция MFPT по документации отсутствует
Мож есть? что возвращает?
М4 прошел тесты расширенной арифметики и прерываний.
Также выяснилось что команды расширенной арифметики не прекращаются при запросе на прерывание - обрабатываются полностью, прерывание происходит после окончания обработки команды EIS. Это затрудняет прохождение теста, так как используются прерывания от терминала и сложно попасть прерыванием в фазу до начала длинной команды EIS (она занимает по времени процентов 90 тестового цикла).
Пока не проходит тест FIS, надо разбираться.
Тесты FIS не проходит потому что M4 в плавающих инструкциях четко сохраняет биты PSW[6:5], а вот настоящий LSI-11 там всегда хранит нули.
С фильтрацией этих битов PSW - тесты OK.
- - - Добавлено - - -
Итак, под марш "Са-а-а-ав-е-е-е-ецкий ц-и-и-ирк" выкатывается рабочая асинхронная модель M4.
Хм.. Типа - приоритет 4 и больше не фига? :)
Ну биты 6 и 5 у М4 есть, но они ничего не делают. Можно установить, можно прочитать установленное, и на этом усе.
- - - Добавлено - - -
Кстати, загадка почему выход предекодера инструкций надо xor-ить с 0x11 осталась нераскрытой.
Это может быть и сбой PLM 556РТ2, а может и левые инверторы на переходной плате, которых у нас нет. В-общем, работает оно с ^0x11, а без него, естественно - нет.