Значит ошибку сделали авторы ПЗУ.
Тогда всё понятно - это просто переключение в 1-ю ( 15ИЭ ) и 2-ю ( VT52 ) системы команд 15ИЭ.
---------- Post added at 00:26 ---------- Previous post was at 00:24 ----------
Т.е. 15ИЭ эмулируется в УКНЦ в обоих этих режимах (и режимы в обоих случаях могут переключаться программно).
На дисках от anasana нашлась одна копия легендарного экранного редактора SCREEN.SAV, который поставлялся в комплекте ДВК и работал в 1-й системе команд, но он похоже битый - передаёт управление внутрь команды и вылетает по Trap_To_10.
...
Да, похоже битый.
MFPT - не самая обычная команда для редактора :)
Ох, не надо о грустном :)
Большая часть образов лент на сервере simh убита таким образом - блоки/eofы переставлены местами. С BRU лентами особых проблем нет, там легко автоматизировать восстановление, а вот со всякими DOS-11 хреново. Я уже давно бьюсь, пытаясь восстановить BP2 V2.7 :)
Последствия чтения программой в режиме чтения кучи блоков за раз.
Исправил работу команд вертикальной прокрутки изображения в 1-й системе команд терминала 15ИЭ-00-013 - теперь по этим командам циклически прокручиваются последние 48 строк в буфере вывода.
Новый вариант дистрибутива "эмулятора ДВК" ЗДЕСЬ.
Теперь тест 15IE.BAS даёт такой результат:
http://emulator.pdp-11.org.ru/misc/15IE_test2.png
Для более вдумчивого тестирования мега-глюка ВМ2 - можно запустить MOVPCY.SAV
задав вручную параметры:Код:.RU MOVPCY
MovPCy - v1.1
Mem Top: 137564
Max Row: 11000
CPU KHz: 5300 >
MTPS : 000000 >
Command: 011700 >
Row Len: 1000 >
Grow : 0 >
R1 : 000000 >
R2 : 000000 >
R3 : 000000 >
Addons : 3 >
W1 : 000240 >
W2 : 000240 >
W3 : 000240 >
Loops : 106 >
Код:Row Len: 1000 > 100
Grow : 0 > 100
принято - сейчас прогоню )
---------- Post added at 10:00 ---------- Previous post was at 08:43 ----------
Получилось как-то так?
Скрытый текст
Какую всё таки герцовку для ВМ2 вбивать в тестах где требуется.
Сегодня тогда начну гнать все тесты по соседней теме наверное?
Если что то в первую очередь интересней пишите же )
Если в этом надо параметры изменить на "правильные" прогоню ещё раз.
---------- Post added at 10:15 ---------- Previous post was at 10:00 ----------
уже вижу - проглядел ( Критично?
---------- Post added at 10:39 ---------- Previous post was at 10:15 ----------
Поправил герцовку на 8013 и вбил Loop=106
Row Len: 1000 > 100
Grow : 0 > 100
результаты 1 в 1 даже не стал делать снимок.
Изучаю соседнюю тему, буду уже в ней выкладывать.
Не знаю что подразумевается под вылетом, но после прогрева выдал совершенно другие данные в результатах! А именно :
Скрытый текст
это при
Поправил герцовку на 8013 и вбил Loop=106
Row Len: 1000 > 100
Grow : 0 > 100
---------- Post added at 13:16 ---------- Previous post was at 13:15 ----------
Начинаю в другую тему выкладывать по тестовой плате№1 (она же на снимках тут)
Когда плата прогрелась - вылет произошёл при длине цепочки последовательных команд MOV (PC),R0 = 7700.
Когда до прогрева не вылетает, а после прогрева вылетает - "питательная" теория получает ещё одно подтверждение.
параметр Loops рассчитывается автоматически на основе заданной частоты процессора, а в режиме Grow - вообще не используется.Цитата:
вбил Loop=106
Режим Grow нужен для того, чтобы более точно определить, начиная с какого количества команд MOV (PC),R0 подряд - начинаются вылеты. При этом Row Len задаёт начальное значение, а Grow - приращение длины цепочки команд.
Подбирая Row Len и уменьшая Grow - нужно ( в смысле - надо бы ) в результате серии последовательных прогонов теста максимально точно определить ту длину цепочки команд, начиная с которой появляются вылеты.
Единственное, что зависит от длины цепочки одинаковых команд - профиль энергопотребления.
Если частота вылетов зависит от температуры, но не зависит от профиля энергопотребления - вероятность вылета для цепочки команд должна быть прямо пропорциональна её длине ( и отличаться от нуля даже для "цепочки" из одной единственной команды ).
Если же выяснится, что при любой температуре есть такая длина цепочки команд, при которой вылет не происходит вообще - решающая роль профиля потребления будет доказана.
Не докажете)
Команда, скачкообразно потребляющая в несколько раз больше тока, чем все остальные, вряд ли может существовать, если только выходы не нагружаются на выходы, и не идет сквозной ток.
И то, это у КМОП-структур, а проц по другой технологии сделан, на сколько я помню.
ага! уже меньше чувствую себя просто мартышкой тыкающей кнопки (
В принципе ничто не мешает погонять этот тест в процессе эксплуатации УК_НЦ )
По моей личной практике - может влиять. По поводу конкретного питания
вот нагрузка: системная плата №1 (у неё СА висит на проводках) + КГМД + КЖМД
с флеш-драйвом.
А вот блок питания
http://savepic.org/3156751.jpg
Критерий истины - практика.
Если при любой температуре платы всегда будет существовать такая длина цепочки команд, что при меньшем или равном значении вылет не происходит - будет доказано, что температура не является причиной вылета.
Но так как единственный физический параметр, зависящий от длины цепочки команд - это профиль энергопотребления, то значит он и влияет.
Какое ещё физическое влияние на плату может иметь ДЛИНА цепочки команд ?
Уважаемые господа! Глюк с вылетом, а точнее с непредсказуемым выполнением команд, существует если после MOV @PC,R0 в цепочке команд, не нарушающих предвыборку, встречаются команды установки/снятия признаков (коды с 240 по 277). При исполнении других команд поведение предсказуемо (двойное исполнение или пропуск), никаких левых вылетов не наблюдается.
P.S. Извиняюсь! Пока забросил тестирование, т.к. нет времени. Появится, продолжу. А так про особенности исполнения я уже писал.
Критерий истины - четкое понимание вопроса. А у тут гадание на кофейной гуще. Раз кроме разогрева никаких параметров не известно, то пусть это будет... ПРОФИЛЬ ПИТАНИЯ! Ничего, что ни на каких других программах, режимах работы и т.д. он не сказывается. Но пусть будет.
Мы не знаем структуры процессора изнутри, и процессы, происходящие в нем могут быть какими угодно сложными и непонятными (и в частности нестабильными с точки зрения известных данных). Но к профилю питания это явно не относится никаким боком.
Питательной теории это не противоречит.
Если бы была принципиально важна лишь "несовместимость" двух типов команд - ДЛИНА предшествующей цепочки никакой роли не играла бы.
Допустим ( т.к. тесты ещё не завершены и как обстоят дела можно лишь гадать ), что при длине цепочки 100 - не вылетает никогда, при длине 700 - тоже никогда, а при длине 800 - всегда.
У микропрограммы ВМ2 слишком маленькое пространство состояний, чтобы после выполнения 700 команд иметь какое-то другое внутреннее состояние, чем после выполнения 800 команд.
Если бы при одной команде никогда не вылетало, а при двух всегда - я бы первый сказал, что проблема в микропрограмме. Но когда задействованы СОТНИ команд - причина явно в другом.
---------- Post added at 13:59 ---------- Previous post was at 13:56 ----------
Вот и не надо гадать на кофейной гуще.
Вопрос элементарно прост - какое физическое влияние оказывает на плату ДЛИНА цепочки одинаковых команд ( кроме влияния на профиль питания, которое очевидно ).
Такая настройка в тесте есть.
Ничто из этого не может иметь чёткой зависимости от длины цепочки команд.
Если 700 ( и меньше ) команд никогда не вылетают, а 800 ( и больше ) всегда вылетают - несинхронность шины данных, ПП и все остальные нефизические причины очевидно непричём.
При включенном таймере (т.е. при разрешённых прерываниях) начало выполнения цепочки команд синхронно с таймером, при выключенном - только с тактовой частотой ( каждая команда начинает выполняться в начале такта ) и эта синхронность одинакова для каждой команды в цепочке.
Большие никаких синхронностей быть не может.
Ради интереса померял время компиляции KMON для RT-11ZM в обычном варианте и с выключенным кэшем...
Код:.TIM
10:00:31
.MAC/OB:OBJ:KMZM SRC:(ZM+FORMZX.CND+EDTG+KMON+KMOVLY)
.TIM
10:09:58
Код:.TIM
10:10:16
.MAC/OB:OBJ:KMZM SRC:(ZM+FORMZX.CND+EDTG+KMON+KMOVLY)
.TIM
10:34:32