Вход

Просмотр полной версии : PDP-11 на FPGA



Страницы : 1 [2] 3 4

Hunta
22.12.2018, 11:34
уже сделана внешняя шина или планируется к реализации


попытка реализовать протокол, похожий на протокол обмена по МПИ

Внутри синтезированного ядра решил отказаться от подхода QBUS - слишком много тратится клоков на отработку протокола, пусть и без фаз - выдача адреса-выдача данных - учитывая, что шины адреса и данных - раздельные. Но надо будет реализовать модуль работы с QBUS,
подключенной снаружи - 36 контактов на гребёнке вроде должно хватить для подключения внешний плат.

Пока не сделана, но планируется - до какой то степени я отработал-реализовал протокол обмена по МПИ/QBUS

Korchagin
23.12.2018, 03:58
Удастся ли только сделать так шину, чтобы работали платы типа MY? Для этого придется реализовывать выдачу всего обмена внутри фпгашки на внешнюю шину.

Hunta
23.12.2018, 07:20
Удастся ли только сделать так шину, чтобы работали платы типа MY
Загадывать не буду - до попытки реализации ещё далеко... :)

Hunta
23.12.2018, 17:09
В первом приближении скрипт по конвертированию листинга в mif-файл сделан, по крайне мере на тех листингах, которые я ему подсовываю - даёт правильный результат.

Будет время - сделаю ещё одну проверку - сравню его результат и те mif-файлов, которые я сделан с помощью его бета-версии, рук и какой то матери :)

- - - Добавлено - - -

Первую "ошибку" уже нашёл - это всё таки не линкер, так что если в листинге встретятся не определённые (возможно, глобальные) символы - на выходе - немного хрень. Получится исправить - поправлю.

- - - Добавлено - - -

Научился обновлять sof файл обновлённым mif файлом без повторного синтеза. Тестирование резко ускорится :)

Hunta
24.12.2018, 01:00
Первая более менее серьёзная проверка скрипта - на "биос"-е видеотерминала. Есть некоторые (не фатальные в данном случае) неточности. Поправлю сегодня вечером :)
Теперь могу пилить биос :)

- - - Добавлено - - -

Забыл написать - сравнение выявило небольшую ошибку (конвертирование скан кода в символы Y y - вместо них получились бы символы X x) полуручного преобразования :)

Hunta
24.12.2018, 20:00
Ошибку в скрипте исправил.

Есть некоторое подозрение, что есть косяк при работа с прерываниями. Попробую потестировать с таймером.

- - - Добавлено - - -

Подозрения растут :)

Hunta
27.12.2018, 20:29
Некоторое время назад сломал отработку Reset по загрузке прошивки в девайс (при нажатии кнопки Сброс всё тип-топ). Вчера сильно забодало. Докопался. Нашёл, где сломал. Пока не понял, чито не нравится синтезатору, но нашёл обходной манёвр - Reset снова работает.

Работоспособность протокола обработки прерывания - под очень сильным вопрос, хотя на 100 процентов неработоспособность пока не подтверждена.

Но поскольку работу Reset восстановил - теперь снова могу ловить отработку прерываний SignalTap-ом.

Hunta
29.12.2018, 19:49
Вроде как нашёл, что сломал. Возврат из прерываний. То есть инструкция RTI (ну и RTT - у них микрокод один и тот же). Пытаюсь понять - чего поломато.

Классно всё таки иметь возможность перепрошивать "BIOS" процессоров в прошивке для FPGA без пересинтеза :) Кучу времени экономит. Вот только что - синтезировал прошивку, залил - проверил работоспособность стандартного BIOS-а (он, конечно, не всё проверяет, но как быстрый вариант прошивки - пойдёт). Убедился, что нового ничего не сломал, прошил BIOS с моим тестом прерываний в прошивку FPGA, перезалил - всё, можно смотреть СигналТапом отработку возврата из прерываний.

Нужно что то добавить в тесты - добавил, получил листинг от MACRO-11, обработал скриптом, получил MIF файл, перепрошил в прошивку - можно заливать-проверять :)

Hunta
31.12.2018, 12:20
YES!!
Я таки добил эту сломаность :) Проблема действительно в возврате из прерываний, а точнее - немного другой логики работы с памятью :)

Плюс - новое знание-понимание оператора "присваивания" в process-ах :)

Пошёл дальше в процессе проверок-восстановления работоспособности-рефакторинга описания :)

Всёх с наступающим!!

Хунта.

- - - Добавлено - - -

Бонусом - заработал модуль VT - он работает по прерываниям и поэтому тоже не работал - значит, значительная часть кода автора работоспособна с моим вариантом работы с памятью.

Hunta
02.01.2019, 16:21
Слово недели - DMA :)

Из успехов - первое слово (240(8)) из загрузчика успешно читается с карты и передаётся в память. Дальше - стопор, как будто до контроллера диска не доходит готовность памяти после записи. Копаю...

Hunta
03.01.2019, 01:01
Кажется, я понял - как.

- - - Добавлено - - -

Блин :) Я думал, что уже второй, а то и третий, год ковыряюсь в PDP-2011 :) А оказывается - ещё и десяти месяцев не прошло :) Однако :)

Hunta
05.01.2019, 16:27
Синтезируемый контроллер хоть как то начал читать, но проц падает где то ещё.
Подозрение на mmu.
Попробую отследить логику работы вторичного загрузчика - что там происходит, до кудава доходит..

Но сообщение ?BOOT-U-No boot on volume я уже увидел :)

Hunta
06.01.2019, 03:55
Ну, косяки - оно наше всё, один нашёл, правда, как то странно реагирует на него проц... Неправильно по любому.. Думать буду днём. Поправил, запустил синтез, пошёл спать :)

Hunta
06.01.2019, 18:09
Шансы mmu повысились :) По любому его надо было поправить под новый протокол работы с шине. Поправил. Запустил синтез. Жду :)

Hunta
09.01.2019, 20:15
В загрузке RT с RK продвинулся ещё дальше, но что то где то ещё не работает. Пока не понял что и где, но выяснилось, что не работает контроллер RK на запись. Вроде поправил, пишу тест. Для теста понадобился генератор псевдослучайных чисел - пишу генератор. Думаю, скоро запущу тест :)

Hunta
10.03.2019, 16:02
Точна дату покупки DE не помню, так что бум считать от месяца, когда я плотно начал её мучать и можно считать - примерно - год, как я наступил на грабли нового своего интереса :)
И уже два месяца перерыва возни с ней...
Другие дела и заботы...

svinka
15.03.2019, 19:53
Сегодня годик исполнился! Наши поздравления!!!!

Hunta
15.03.2019, 19:56
Спасибо :)
Никак не соберусь продолжить. Но есть мнение, что примерно 21-22 опять начну "микросхемы" соединять :) Тем более, что много уже сделано - даже RT стала достаточно далеко заходить с загрузкой :)

Hunta
23.03.2019, 12:43
В силу специфики работы на следующей неделе - опять вернусь к этому проекту. На выходных спаяю дочернюю плату с адаптерами SD (три штуки), адаптером Ethernet (одна штука) и разъёмом под последовательный порт (один, может быть два).

Возможно так же будет сделана ещё одна плата (если времени хватит) - с одним адаптером SD, одним последовательным портом и кучей контактов для отладки - так как у меня теперь есть осцилл с ЛА - можно будет и его задействовать, а то некоторые моменты в SignalTap вызывают у меня вопросы.

В планах - довести до ума работу с SD картой - модули от автора меня не сильно устраивают, будет много чего в них изменено

- - - Добавлено - - -

Ради хохмы (ну и на фсякий слутчай) зарегистрировал на себя pdp-fpga.ru и pdpfpga.ru
Пока на них ничего нет - даже DNS не настроен (но с этим некоторые технические проблемы - в процессе решения)

xolod
23.03.2019, 12:51
Есть желание портировать это дело под MISTer.

Hunta
23.03.2019, 12:55
Есть желание портировать это дело под MISTer.
Как только доведу дело до ума - исходники будут выложены. Пока там особо нечего выкладывать - даже RT-11 ещё не грузится :)

zebest
23.03.2019, 12:57
Есть желание портировать это дело под MISTer.
denied request - DN ?

xolod
23.03.2019, 15:46
denied request - DN ?
Кем denied?

Hunta
23.03.2019, 18:58
Посмотрел, подумал - и переиграл :) Сначала отладочную дочернюю плату, потом уже продакшн :)

Hunta
24.03.2019, 13:39
Домены делегировал, DNS настроил, в пределах часа должны разрешаться. Пока только имена ns и ns2. Постепенно буду переносить на них всё выложенное (и выкладываемое) в отношении PDP и FPGA :) Сайт, как обычно пишут - under construction :)

Hunta
25.03.2019, 21:42
Допаял дочернюю плату. Провод из витой пары - в принципе вещь неплохая для прототипа, но изоляция на нём - ГАВНО! Найти б цветной МГТФ...
Господа специалисты - вопрос. Для прототипирования - какая толщина МГТФ считается комильфо?

- - - Добавлено - - -

Забыл написать - завтра буду проверять, чего я там напаял. Но в принципе выглядит лучше, чем собранное на бредкрамбе :)

AlexG
25.03.2019, 22:06
паял мгтф 0.07 чтоль плату с интелом 186 на 29 корпусов разной логики(примерно). без зачистки - это "жесть". другой девайс паял эмалированным проводом, который зачищался паяльником.
офф топ. я нынче в самаре на неделю.

bigral
01.04.2019, 16:03
Господа специалисты - вопрос. Для прототипирования - какая толщина МГТФ считается комильфо?

Я зачищаю МГТФ с помощью китайского ножа - легонько провожу по изоляции с двух противоположных сторон и потом ногтями снимаю кончик изоляции. При этом если немного сильнее нажимаешь ножем то несколько медных жил срезаются, т.е. если МГТФ будет сильно тонкий то останется совсем мало жил, потому совсем тонкий МГТФ применять тяжело (надо очень аккуратно подрезать изоляцию). С другой стороны толстый МГТФ намного дороже и на плате он как шапша висит сильно огромный клубок проводов создает... потому 0.5 ... 0.75 наверно

Hunta
01.04.2019, 16:18
потому 0.5 ... 0.75 наверно
Аха, спасибо.

Сейчас, по размышлению, пришёл к выводу, что неправильно делал. У меня макетка вся в металлизированных сквозных отверстия. Думаю, было бы лучше делать из кусков провода типа дорожек. Вторую попробую сделать так. Будет ли МГТФ или от витой пары... пока не решил. Думаю, всё таки поэкспериментирую с МГТФ. Но не скоро (см нижу)

И кстати, забыл написать - забацанная плата вполне работоспособна. Ну.. сложно было ошибиться с десятком проводов :)

Пока экспериментирую с DMA, точнее, с его реализацией в RK11

bigral
01.04.2019, 16:36
Будет ли МГТФ или от витой пары... пока не решил. Думаю, всё таки поэкспериментирую с МГТФ.

витая пара этож обычный провод от телефонного кабеля времен ссср, полная херня, он годится для холодной накрутки но не для паяния, изза того что изоляция плавиться как парафин... если облом чистить МГТФ есть еще вариант пользовать эмалированный провод от трансформатора, правда там такое дело что снимать эмаль не такто просто (тоже ножем царапнуть? или спец-заточку сделать для царапания кончиков эмалированного провода перед лужением)

и еще 1 момент! ранее думал что у всего МГТФ одинаковая изоляция, а вот и нет, попался мне тут моток провода в котором косичкой 2 МГТФ провода было, один потолще другой потоньше, так вот тот что потоньше даже можно не зачищать, так как если просто откусить и "с торца" прикаснуться паяльником с припоем то он четко оплавится на 1..2 мм и залудится! (очень удобно) а тот что потолще вообще зараза не оплавляется даже на пол миллиметра (только очищать)

Hunta
01.04.2019, 17:39
витая пара этож обычный провод от телефонного кабеля времен ссср, полная херня, он годится для холодной накрутки но не для паяния, изза того что изоляция плавиться как парафин
Это витая пара категории пять :) И про плавящуюся изоляцию уже писал. Но в принципе - можно приспособиться, хотя и лучше паять без близко расположенных детей - ибо сквозь зубы, но мат перодически :)


как если просто откусить и "с торца" прикаснуться паяльником с припоем то он четко оплавится на 1..2 мм и залудится

тот что потолще вообще зараза не оплавляется даже на пол миллиметра
Да, я читал про такое. А ещё - если взять ванночку с припоем (типа такой https://www.chipdip.ru/product/ss-551b), то можно подобрать температуру, при которой достигается такой же эффект, как выше описанный - погрузил слегка - всё, можно паять.

В общем, пока паять много не приходится - буду думать :) Потом скорее всего возьму паяльную станцию и ванночку :)

AFZ
01.04.2019, 19:55
Зачистить МГТФ ? Бокорезами. Тренируйтесь, и у вас все выйдет. Знал людей, которые по заказу зачищали бокорезами провод МГШВ либо до шелка, либо до меди. А зачистить МГТФ - 3 движения. Первое - сдёрнуть основной кусочек изоляции, при этом остаётся пара неудалённых хвостиков. Второе и третье движения - откусить эти хвостики.

Да, бокорезы, естественно, нужны правильные, а не то дерьмо из стали марки ХРЖ, которое, в основном, у нас продается...

AlexG
01.04.2019, 20:27
мгтф - можно обжигалкой зачищать.
обычный эмалированный провод - в таблетках аспирина.
НО всё это под вытяжкой.

AFZ
01.04.2019, 21:19
обычный эмалированный провод - в таблетках аспирина.Обычный старый эмалированный провод марок ПЭ и ПЭЛ легко облуживается слегка перегретым паяльником на картонке с канифолью. Берем кусок картона, кладем на него маленький кусочек канифоли, плавим ее паяльником, и вперед. Канифоль по мере выгорания добавляем.

Провод марки ПЭТВ без зачистки лудится крайне хреново, хоть аспирином, хоть другими флюсами, в том числе и активными - пока не повредишь чем-нибудь изоляцию, изба фигвам!

svinka
01.04.2019, 22:44
Используйте самолудящийся провод марок ПЭВТЛ ПЭВЛ в эмаль которого добавлены компоненты для лужения выделяющиеся при нагревании

ядреный лак удобно сжигать в пламени спиртовки (свечки). Продукты горения удалять ваткой или салфеткой

AlexG
01.04.2019, 23:28
Используйте самолудящийся провод марок ПЭВТЛ ПЭВЛ в эмаль которого добавлены компоненты для лужения выделяющиеся при нагревании

ядреный лак удобно сжигать в пламени спиртовки (свечки). Продукты горения удалять ваткой или салфеткой
1 - оным проводом пользовался, достаточно удобно
2 - можно перегреть, и медь просто сгорает/становится хрупкой.

Hunta
14.04.2019, 18:01
Как то лениво всё...
Повозившись с подключением корзины Квант-а к блоку ATX, взял себя второй раз в руки - копаюсь в VHDL. Поскольку меня не устраивало в PDP-2011 и то, как всё друг дружке подключается и поскольку в переделки интерфейса работы с SD как то дела застопорилось - решил зайти малость с другой стороны. Переделаю организацию сборки PDP в PDP-2011 и потом выведу интерфейс работы с SD (не SPI, а немного более высокоуровневый) на QBUS. Дабы проверить работу интерфейса. А потом уже буду организовывать эмуляцию RK11 (RL11 и DB)

Ynicky
15.04.2019, 20:49
Попробовал реализовать проект PDP2011 на своей плате с FPGA EP3C10E144C8.
Не хватило места. А вот блок VT влез (37% логики).
В тесте 41 клавиатура дает абракадабру, а в 42м не реагирует.
Так и должно быть?
И можно ли на основе VT сделать проект БК0010/11?
68791
68792

Hunta
15.04.2019, 21:31
Попробовал реализовать проект PDP2011
В этом проекте есть куча внутренних проблем


И можно ли на основе VT сделать проект БК0010/11?
Сделать то можно, но из за внутренних проблем будете долго бодаться

Я их потихоньку вычищаю, но в целом по организации уже далеко (а в планах - ещё дальше) ушел от мироорганизации PDP-2011

- - - Добавлено - - -


В тесте 41 клавиатура дает абракадабру, а в 42м не реагирует.
Так и должно быть?
Понятия не имею. У меня в роли терминала он или не запускается вообще (проц синтезировался криво) или работает нормально

AFZ
25.04.2019, 17:19
Кстати, случайно глянул XILINX Spartan-6 Family Overview (увидел на Али платку с XC6SLX16 за 17 с копейками вечнозеленых), в Спартане, который на этой платке, правда, нет, но в каких-то старших Спартанах-6 есть набортный интерфейс SATA. Не смотрели, может и у Альтеры такое есть?

balu_dark
25.04.2019, 17:56
Там много чего есть , но думаю для работы таких вещей - надо покупать айпи ядро, а стоит оно многие сотни тысяч.

Hunta
25.04.2019, 19:10
Не смотрели, может и у Альтеры такое есть?
Есть. За примерно три
https://www.terasic.com.tw/cgi-bin/page/archive.pl?Language=English&CategoryNo=228&No=1133

AFZ
25.04.2019, 21:14
Поразглядывал внимательнее.Не так все плохо. Хотя, все-таки, плохо... У Спартанов SATA генерят на Low-Power Gigabit Transceiver (GTP). Аналогичная фенечка есть и у Циклонов, называется High-speed transceivers. У 4-х Циклонов она (фенечка) есть даже у (сравнительно) дешевого ($10-15 на Али) EP4CGX15. Только вот пробных плат с этими циклонами (GX Device Family) на Али нет - только голые чипы в BGA.

AlexG
25.04.2019, 21:56
зачем в пдп сата интерфейс??? :-(

Hunta
25.04.2019, 22:11
зачем в пдп сата интерфейс
Винчестер подключа :)

AlexG
26.04.2019, 01:30
тогда покупной переходник иде на сата -дёшево и сердито. в 100 раз дешевле, надёжнее, проще. Забудьте про самопал сата - сиё надо иметь левел скила 80+. "мы" не потянем.

Hunta
26.04.2019, 05:46
тогда покупной переходник иде на сата -дёшево и сердито
То есть GPIO сороковник уходит просто на ура.


"мы" не потянем
Не тяните

AFZ
26.04.2019, 06:05
А вот с 5-м Циклоном нашлась-таки не такая дорогая пробная плата с камнем из GX Device Family - всего 320 вечнозеленых...

Hunta
26.04.2019, 06:15
нашлась-таки не такая дорогая пробная плата
Это какая?

AlexG
26.04.2019, 09:53
скорей всего
https://www.terasic.com.tw/cgi-bin/page/archive.pl?Language=English&CategoryNo=167&No=830
цена там 180$
или
https://www.terasic.com.tw/cgi-bin/page/archive.pl?Language=English&CategoryNo=167&No=1081
цена там 350$

но к ней (к любой из плат) нужна будет плата-переходник "SATA/SAS HSMC Card"
https://www.terasic.com.tw/cgi-bin/page/archive.pl?Language=English&CategoryNo=67&No=489
цена там 550$
(требуется убедится что данные платы совместимы по разводке на разъёме)

и это ещё без таможни и доставки.
А кромя, если делать свои платы - то надо обладать знаниями "чёрной магии" для работы с 3ГГц сигналами в "бытовых" условиях

Буду рад если я ошибаюсь...
ПС: у xilinx аналогичный расклад. Основной прикол в "HSMC connector" они безумно дорогие (по крайней мере, если мне не соврали - 200$ за аналогичный разъём для xilinx)

svinka
26.04.2019, 10:10
Для ретро компьютинга иногда выгоднее брать старые пятивольтовые платы и чипы.

от 1 до 2 долл за штуку

У меня есть.....

Hunta
26.04.2019, 10:44
скорей всего
https://www.terasic.com.tw/cgi-bin/p...yNo=167&No=830
цена там 180$
или
https://www.terasic.com.tw/cgi-bin/p...No=167&No=1081
цена там 350$

но к ней (к любой из плат) нужна будет плата-переходник "SATA/SAS HSMC Card"
https://www.terasic.com.tw/cgi-bin/p...ryNo=67&No=489
цена там 550$
(требуется убедится что данные платы совместимы по разводке на разъёме)

Ничего из этого не подходит - написано - 320, а у этих в плата переходник перебивает одна эту сумму.


и это ещё без таможни и доставки.
В своё время я брал у terasic девайс за 660, они отправляли только FedEx-ом, который захотел 86. Таможня ничего не захотела

AlexG
26.04.2019, 11:15
ок. Если для "себя любимого" то ничего не жалко. но сата - достаточно сложная для подъёма тема. кроме схемы надо ещё контроллер сата в плисе "нарисовать" и драйвер винча в софте. и до кучи что будем делать со скоростью чтения порядка 100мб/сек в системе с ПДП-11 даже на тактовой в 100Мгц?

Не люблю китайцев - но вот есть в "одном флаконе" ZYNC-015 и одна штука SATA
MYD-C7Z015 Development Board
http://www.myirtech.com/list.asp?id=553
но на моём "любимом" xilinxe

пс: если вдруг надумаете купить - отпишитесь может тоже присоединюсь...

Hunta
26.04.2019, 11:46
но сата - достаточно сложная для подъёма тема
Я и не говорил, что лёгкая. Но и вот так сразу - мы не потянем... Полтора года назад я думал, что FPGA - это что то очень сложное. Ничего, втянулся :)


драйвер винча в софте
Ну это не самое сложное :) Зависит от того, как

контроллер сата в плисе
нарисовать :)


и до кучи что будем делать со скоростью чтения порядка 100мб/сек в системе с ПДП-11 даже на тактовой в 100Мгц
Изображать из себя ОЗУ :) Вопрос не в том, что делать, а вопрос - из того, что есть под рукой - что отличается максимальной надёжностью хранения? :) Винчестер :) А как оне щаз подключаются? SATA :) Но поскольку пока контроллер в FPGA не нарисован.. Пользуем то, что ещё есть под рукой :)

AlexG
26.04.2019, 11:58
1)см. выше по плате.

2) есть "модная" фишка под названием eMMC
размером от 4ГБайт и до бесконечности. скорость до 200МБ/с, интерфейс элементарный и понятный чтото типа SPI только 1/4/8 бит шириной, крайне сильно похож на SD.
минусы - бга онли.
плюс - никаких "проблем" с ресурсом секторов (само контролирует). др. словами снаружи выглядит как блочное устройство "номер сектора -> данные"

3) из наличия есть zedboard и "Artix-7 50T FPGA Evaluation Kit"
в конторе разрабатывается девайс с "QSPI FLASH на 512МБайт" и "eMMC на 8ГБайт" и zync020

Hunta
26.04.2019, 12:18
на моём "любимом" xilinxe

пс: если вдруг надумаете купить
Неее, я пока на Alter(Intel)-е сижу :) И разговор про плату тоже касался их Циклонов


2) есть "модная" фишка под названием eMMC

"QSPI FLASH на 512МБайт" и "eMMC на 8ГБайт" и zync020
Из того, что под рукой, ПОКА устраивает SD и CF

AlexG
26.04.2019, 12:30
у меня склероз: в SD и CF есть "автоматическое выравнивание износа секторов"? или всё надо "ручками" делать ? flash usb я вообще не смотрю - сам по себе usb-host программно тяжеловат чтоб его самому писать, а линукс это не по феншую.

Hunta
26.04.2019, 12:56
в SD и CF есть "автоматическое выравнивание износа секторов"?
Сходу не могу сказать...

AFZ
26.04.2019, 13:02
Это какая? Вот такая (https://ru.aliexpress.com/item/Cyclone-V-GX-Starter-Kit-Altera-C5G-FPGA-Cyclone-V-GX-Starter-Kit/32281983171.html?spm=a2g0v.search0104.3.10.28d07ef 6sfN32Y&ws_ab_test=searchweb0_0,searchweb201602_7_10065_10 068_319_10059_10884_317_10887_10696_321_322_10084_ 453_10083_454_10103_10618_10307_537_536,searchweb2 01603_6,ppcSwitch_0&algo_expid=aee8263d-61a4-48d1-9520-6397a7ac0e0c-1&algo_pvid=aee8263d-61a4-48d1-9520-6397a7ac0e0c&transAbTest=ae803_3).

Hunta
26.04.2019, 13:09
Вот такая.
Ну, во первых, китаяса что то много хочет. Вот оно же
https://www.terasic.com.tw/cgi-bin/page/archive.pl?Language=English&CategoryNo=167&No=830
Даже если предположить 86 баксов FedEx-у за доставку - получается в районе 18 на наши против 21 хотелки китаяса.

Во вторых - я не вижу на плате SATA разъёмов

AFZ
26.04.2019, 16:16
Так их там и нет. Просто у этого камушка на борту есть 6 шт High-speed transceivers, со скоростью до 3.125 Гбит/сек, используя каждый из которых можно синтезировать SATA, PCI express и т.п.

AlexG
26.04.2019, 16:42
http://lurkmore.so/images/6/65/Sphere_horse.jpg
Зачем нужна плата на которой нет нужных разъёмов?

AFZ
26.04.2019, 17:15
Зато на ней есть камень, на котором можно синтезировать интерфейс SATA (SATA 2, 3Гбит/сек, да?). А разъем и припаять недолго...

AlexG
26.04.2019, 18:02
оффтоп(блуд):
У Вас есть ответная часть оного разъёма ? того что на плате распаян справа ? а потом к оному разъёму припаяйте сам разъём сата.
оная "фигня" в оригинале стоит 550$ (плата с распаяной кучкой разъёмов) и всё это на гигагерцовых скоростях. на таких частотах электричество не по проводах течет, а скользит по поверхности проводников. и вот здесь начинается самое интересное - "black magic"
:v2_dizzy_botan:

Вот спецификация на разъём что на плате запаян
https://www.intel.com/content/dam/www/programmable/us/en/pdfs/literature/ds/hsmc_spec.pdf
ПС: по цене условно 15$ за ответную часть. + надо ещё печатку (правильно разведённую) + опорный генератор + САТА разъём. Наверно где-то от 50 до 100$ выйдет самопал (я не технолог и рыночные цены не в курсе).

AFZ
26.04.2019, 18:52
Оно-то, конечно, так. Только вот на писюшных мамашах SATA-разъемы ведь как-то ставят? Нет, мне-то по барабану, но ведь это вы хотели прицепить винчестер к синтезированной PDP-11, я подсказал возможный путь. Не хотите - как хотите.

ПС: по цене условно 15$ за ответную часть. + надо ещё печатку (правильно разведённую) + опорный генератор + САТА разъём. Наверно где-то от 50 до 100$ выйдет самопал (я не технолог и рыночные цены не в курсе). Необязательно делать это по-взрослому, на этапе отладки можно вообще отрезать один конец SATA-шного шнурка и допаять его прямо на разъем, зафиксировать шланг за неразделанную часть, чтобы не обломился, и вперед. А потом...

Или вы так и собираетесь оставить проект на тестовых платах FPGA ? Я думал, что итогом проекта должна быть плата в корзинку с МПИ/Q-Bus.

AlexG
26.04.2019, 20:11
ну не я хочу сата к пдп подключать ;-)
а кабеля не всегда могу паяться - бывают типо только "обжим".

zebest
26.04.2019, 21:37
а кабеля не всегда могу паяться - бывают типо только "обжим".
и такие знаем. но пытливый деЦЦкий ум и тут победил

http://s1.micp.ru/7N81x.jpg

Одножильный. скорее всего залудиЦЦа без проблем.
кстати кабель не самый плохой, бывают и хуже. буквально вчера гораздО хуже по качеству менял. в с.м.а.р.т.-е куча ошибок CRC была.

Vslav
26.04.2019, 23:42
оффтоп(блуд):
У Вас есть ответная часть оного разъёма ?

У меня есть. Правда реально покупался за $33/штука. И плата переходная есть на SATA-host и на SATA-device. Был проект, запускалось SATA сложно, возни с этими трансиверами было очень много. Без внешнего анализатора/генератора SATA-трафика отладить нереально, в-общем, задача не совсем любительская.

AFZ
27.04.2019, 07:31
Грустно. И, как я понимаю, с Xilinx-ами будет ничуть не лучше...

Hunta
27.04.2019, 09:36
Грустно. И, как я понимаю, с Xilinx-ами будет ничуть не лучше...
А ещё грустнее, что сам камень, ну, по крайне мере более менее нормальный по ресурсам и выводам, в розницу часто стоит дороже готовой на нём dev платы

Vslav
27.04.2019, 11:16
А ещё грустнее, что сам камень, ну, по крайне мере более менее нормальный по ресурсам и выводам, в розницу часто стоит дороже готовой на нём dev платы
Я прикупил EP4CGX30 по $15, на них вполне можно SATA-2 (3Gbps) поднять, может быть и сделаю когда-нибудь платку с SATA. Скорости большие по шине необязательны, SATA хенд-шейк поддерживает, все регулируется.

Hunta
27.04.2019, 11:55
Я прикупил EP4CGX30 по $15
Наверняка не могу сказать, но под PDP-2011 LE близко к впритык. Правда, по хорошему, там оптимизировать и оптимизировать. А плюс ещё сколько то LE займёт реализация SATA, если я правильно понимаю. Но с ВМ1-ВМ2-ВМ3 проблем не должно быть

AFZ
28.04.2019, 06:50
Наверняка не могу сказать, но под PDP-2011 LE близко к впритык.Ну, так взять EP4CGX110, 98 баксов на Али, даже не в 10 раз дороже, всего в 5 :) И PDP-11 влезет, и SATA, и еще треть останется...

- - - Добавлено - - -

Плату, правда, придется заказывать и она будет подороже, чем камушек, зато можно будет и SATA реализовать, и МПИ/Q-Bus, и что хочешь. Причем не одну - первая должна быть пробной, с массой штырьков, на нее, кроме камня, прицепить только SDRAM/DDRx, разъемы SATA, ну, и что-то для видео, а уж когда все будет отлажено, тогда можно будет думать и о боевой плате.

Hunta
05.03.2020, 13:53
Hunta, а в Вашей переработанной реализации уже сделана внешняя шина или планируется к реализации?
Теперь я могу ответить точнее. Уже сделан вход-выход на стандартную QBus для периферийных устройств из проекта PDP-2011.
В будущем сделаю и вариант - проц из PDP-2011 на стандартную QBus. В принципе - ничего особо сложного.

Hunta
02.05.2020, 10:40
После долгого (почти год) перерыва вернулся опять к этому проекту :) KL2011 и RK2011 не совсем в счёт, всё таки маленькие модули.

А вот процессор - это уже побольше :)

Но, с учётом опыта и переиспользования кода, проект будет продолжен немного с другим подходом :)

Так что на DE10 для заливки пока ничего нет, работа идёт с модулями процессора, ДП, системных регистров и нового подхода к модулю шины.

Процессор уже вроде ожил, ДП надо малость переработать (всё таки модуль UMR не совсем его часть и будет вырезан для самостоятельного существования), регистры надо проверить, модуль шины довести до рабочего состояния по новым идеям - и можно будет попробовать синтезировать прошивку для DE.

Ну и аналогично модулю шины, ведутся работы с модулем QBus, что бы работающее в FPGA можно было выпустить в реальный QBus как с функционалом - процессор снаружи, так и с функционалом - процессор в FPGA.

Некоторое количество новостей по продвижению задуманного можно будет увидеть в теме про мультиконтроллер - так как модули будут использоваться и там.

Когда поиграюсь с DE - пока не знаю, приоритет - не у PDP-2011.

Hunta
20.05.2020, 20:17
Чуть больше года прошло с момента, как я прервался с DE10 и PDP-2011.

Теперь кодовая база у МИПК и PDP-2011 общая, что позволило достаточно быстро запустить тестовый PDP-11/33 на DE10 :)

И вот - свежие новости:



@DK7
RT-11SJ V03B-00B

.D 56=5015

.TYPE V3USER.TXT
Welcome to RT-11 Version 3B. RT-11 V03B provides mainly new hardware
support and some minor enhancements over Version 3.

If you are using a terminal that requires fill characters,
modify location 56 with a Deposit command before proceeding with
system installation. LA36 DECwriter II and VT52 DECscope terminals
do NOT require such modification.


.D 56=0

.RUN SPEED

ТЕСТ БЫСТРОДЕЙСТВИЯ

КОМАНДА СЛОЖЕНИЯ РЕГИСТР-РЕГИСТР
БЫСТРОДЕЙСТВИЕ (ТЫС.ОП./СЕК) 4960

КОМАНДА СЛОЖЕНИЯ РЕГИСТР-ПАМЯТЬ
БЫСТРОДЕЙСТВИЕ (ТЫС.ОП./СЕК) 3328

КОМАНДА УМНОЖЕНИЯ РЕГИСТР-РЕГИСТР
БЫСТРОДЕЙСТВИЕ (ТЫС.ОП./СЕК) 3328

КОМАНДА ДЕЛЕНИЯ РЕГИСТР-РЕГИСТР
БЫСТРОДЕЙСТВИЕ (ТЫС.ОП./СЕК) 1608
.


Ну а поскольку память сгенерировано немного больше, теперь можно запустить и RT-11 v5.7 :) Чуть позже выложу результаты :)

- - - Добавлено - - -

И теперь тоже из под RT-11 v5.7



000041 000000 000000 000000
@DK6
RT-11SB (S) V05.07

.RUN SY:TD3E

?2l
?MON-F-Trap to 4 001550

.DAT 20-MAY-2020

.TIM 21:14

.RUN SPEED

ТЕСТ БЫСТРОДЕЙСТВИЯ

КОМАНДА СЛОЖЕНИЯ РЕГИСТР-РЕГИСТР
БЫСТРОДЕЙСТВИЕ (ТЫС.ОП./СЕК) 4976

КОМАНДА СЛОЖЕНИЯ РЕГИСТР-ПАМЯТЬ
БЫСТРОДЕЙСТВИЕ (ТЫС.ОП./СЕК) 3328

КОМАНДА УМНОЖЕНИЯ РЕГИСТР-РЕГИСТР
БЫСТРОДЕЙСТВИЕ (ТЫС.ОП./СЕК) 3328

КОМАНДА ДЕЛЕНИЯ РЕГИСТР-РЕГИСТР
БЫСТРОДЕЙСТВИЕ (ТЫС.ОП./СЕК) 1608
.


- - - Добавлено - - -


Когда поиграюсь с DE - пока не знаю, приоритет - не у PDP-2011.
Не надолго терпения хватило :D

Vslav
20.05.2020, 20:47
Чуть больше года прошло с момента, как я прервался с DE10 и PDP-2011.
Какой DE10-то? Их там с полдюжины разных с суффиксами лайт, нано, супер...

Hunta
20.05.2020, 20:53
DE10 Standard :) Если быть точнее, то у меня VEEK-MT2S, но по сути это DE10 плюс сенсорный экранчик (который пока никак не юзается...) Чего то в своё время пожадничал. Ну, молодой был, не опытный :)

Hunta
21.05.2020, 10:23
Играюсь с времянкой:



.RUN SPEED

ТЕСТ БЫСТРОДЕЙСТВИЯ

КОМАНДА СЛОЖЕНИЯ РЕГИСТР-РЕГИСТР
БЫСТРОДЕЙСТВИЕ (ТЫС.ОП./СЕК) 6224

КОМАНДА СЛОЖЕНИЯ РЕГИСТР-ПАМЯТЬ
БЫСТРОДЕЙСТВИЕ (ТЫС.ОП./СЕК) 4504

КОМАНДА УМНОЖЕНИЯ РЕГИСТР-РЕГИСТР
БЫСТРОДЕЙСТВИЕ (ТЫС.ОП./СЕК) 3808

КОМАНДА ДЕЛЕНИЯ РЕГИСТР-РЕГИСТР
БЫСТРОДЕЙСТВИЕ (ТЫС.ОП./СЕК) 1712
.


- - - Добавлено - - -

Скорость в 10 миллионов оп/с достигнута :)



@DK6
RT-11SB (S) V05.07

.RUN SY:TD3E

?2l
?MON-F-Trap to 4 001550

.RUN SPEED

ТЕСТ БЫСТРОДЕЙСТВИЯ

КОМАНДА СЛОЖЕНИЯ РЕГИСТР-РЕГИСТР
БЫСТРОДЕЙСТВИЕ (ТЫС.ОП./СЕК) 12440

КОМАНДА СЛОЖЕНИЯ РЕГИСТР-ПАМЯТЬ
БЫСТРОДЕЙСТВИЕ (ТЫС.ОП./СЕК) 9040

КОМАНДА УМНОЖЕНИЯ РЕГИСТР-РЕГИСТР
БЫСТРОДЕЙСТВИЕ (ТЫС.ОП./СЕК) 7648

КОМАНДА ДЕЛЕНИЯ РЕГИСТР-РЕГИСТР
БЫСТРОДЕЙСТВИЕ (ТЫС.ОП./СЕК) 3432
.

Alex
21.05.2020, 11:39
Это уже конкретная круть! :v2_clapp:
На порядок прирост...

Hunta
21.05.2020, 12:36
На порядок прирост...
Э... На порядок прирост от чего? :) Я вижу только в два раза (ну что то же неплохо) :)


Но если сравнивать в ВМ3 - то его 1.6 на 5 против 12.5 на 100 - не, пока не впечатляет :) Что бы хотя бы сравняться, нужно 32 лимона :)


И, если что (см тему) - это на DE10 :) У которой максимальная частота (она пока далеко не достигнута с PDP-2011) - 500 МГц (или что то около того) против 100 МГц (или что то около того) на втором Циклоне у мультиконтроллера :)


А вот теперь из интересного:


Я тут понасиловал эмулятор Патронв, на ВМ3 максимум, что смог достичь - Умножение регистр регистр - 31184
Просто Windows у меня управляет тактовой проца, поэтому приходится в цикле гонять SPEED и ловить максимум :)

И учитывая, что эмулятор работает на Xeon-е с тактовой 2.4 МГц, а проц в FPGA - на 100 МГц...

То результат эмулятора с его 31184 против 12440 (у DE10) смотрится.. как бы это сказать...
Не сильно впечатляюще :) Тактовая в 24 раза больше, а результат - только в 2.5 :)


Есть мнение, что если повылизывать код PDP-2011, он и на 100 сможет достичь результат за 20 лимонов :) (хотя 32 будет смотреться круче) :D


Сейчас вот прям специально так этим заниматься не буду, но я периодически пробую чёнть ускорить :) С переменным успехом :D

Alex
21.05.2020, 13:20
Так ведь FPGA для того и предназначена, чтобы быстрее работать на меньшей частоте по сравнению с классическим процессором :)

Что же будет, если окажется доступной FPGA хотя бы на пару гигагерц ;)
Я понимаю, что там придётся некоторые изменения вносить...

Hunta
21.05.2020, 13:23
Красавчег отжигает :D

DHRY, который у меня, на ВМ3 показывал от 278 до 312

На М8 (J-11 почти на 15 мГц)


.run ld:dhry

DHRY v3.0 - Dhrystone (1.1)
This machine benchmarks at 344 dhrystones/second.

.


И - проц в FGPA :)



000042 000000 000000 000000
@DK6
RT-11SB (S) V05.07

.RUN SY:TD3E

?2l
?MON-F-Trap to 4 001550

.DAT 21-MAY-2020

.TIM 14:14

.RUN DHRY

DHRY v3.0 - Dhrystone (1.1)
This machine benchmarks at 7'124 dhrystones/second.

.


- - - Добавлено - - -


Так ведь FPGA для того и предназначена, чтобы быстрее работать на меньшей частоте по сравнению с классическим процессором
Просто отдельные личности тут кричат - ноутбук с эмуляторм - и будет у вас PDP-11 вашей мечты. Ну и плюс резиновая женщина.

Аха, щаззззз.

Alex
21.05.2020, 13:25
Интересно, а в эмуляторе сколько покажет?

Hunta
21.05.2020, 13:35
Что же будет, если окажется доступной FPGA хотя бы на пару гигагерц
Ну, технически они как бы есть у Альтеры, тьфу, Intel-а. Но, во первых, стоят не пропорциональных денег, а во вторых - я всё таки не электронщик, мне надо что то готовое или почти готовое - как 1201.2018, мультиконтроллер или на худой конец - DE10 :) И у того же Terasic есть что то подходящее, но стоит пока для меня дороговато :) Вот Епотеку отдам - как подарок к пенсии может и куплю что то из :)

- - - Добавлено - - -


а в эмуляторе сколько покажет?
DHRY?
Щас гляну

- - - Добавлено - - -



RT-11SB (Y) V05.07

.SET TT FORM

.SET TT SCOPE

.SET EDIT K52

.SET SL ON

.DAY
Время Дата
14:27:54 21-Май-2020, Четверг

.ASSIGN HD1 DK

.ASSIGN HD6 KXX

.DHRY

DHRY v3.0 - Dhrystone (1.1)
This machine benchmarks at 11'906 dhrystones/second.

.

Как ни странно, но первый запуск (из примерно 20, которые за ним последовали) показал лучший результат.
Попробовал поразгонять ксеон циклическим запуском DHRY, но... 8 - 9 тысяч, даже за десятку не выбрался ни разу...

- - - Добавлено - - -

А неееет, только что выбрался пару раз :)

- - - Добавлено - - -

В общем, тут результат даже похуже, чем в SPEED, - скорость в 24 раза больше, а результат только в полтора....

- - - Добавлено - - -

На LST-11/83 (0.72 от первого VAX-а с его 1 vup) - 1100/1181 (с и без оптимизации)

Alex
21.05.2020, 13:36
Насчёт "резиновости" - тут конечно оригинал есть оригинал. Но проблема в том, что оригиналы не вечны... :(
Ещё лет 5 и что-то путное из оригинала уже найти будет сильно тяжелее :(
А эмулятор или FPGA будут жить и работать... :)
И FPGA - она ближе к оригиналу :)

Hunta
21.05.2020, 13:49
оригинал есть оригинал
Мне нравится именно архитектура и система команд PDP-11. Так что если есть ЧТО-ТО, что позволит запускать операционки (в том числе оригинальные) и софт (в том числе оригинальный) - для меня этого будет достаточно. Но есть два но.

Первое но - то железо, которое было сделано в те времена - имеет меньшую отказоустойчивость (особенно советское), чем современное и худшие характеристики (типа скорости и размера).

Второе но - я пока не видел ни одного эмулятора, который бы эмулировал оригинал на 100 процентов. И не увижу. Потому что все эмуляторы работают ПОСЛЕДОВАТЕЛЬНО (да, можно нарисовать многопоточный, но тут с параллельностью мы упрёмся в количество процессоров на целевой системе и то, что целевых систем РЕАЛЬНОГО времени - то есть с предсказуемым временем отклика - сейчас КРАЙНЕ мало, да и писать под них - ещё та задачка. Не видел я эмуляторов для них, но по любому - количество процессоров на них тоже.. не сотни тысяч. А поэтому сэмулировать ПАРАЛЛЕЛЬНУЮ работу составляющих даже процессор элементов - неа, не получится.


И FPGA - она ближе к оригиналу

А FPGA - это тысячи и больше логических элементов, которые ещё надо постараться заставить работать ПОСЛЕДОВАТЕЛЬНО. И поэтому собрать на них проц (и не только), который будет работать один в один с теми - задача сложная или очень сложная - но реальная. И этот проц программно не будет возможно отличить от того.

Да, не спорю, PDP-2011 далёк от такого идеального воспроизведения. Особенно учесть, что писался он не с такой целью :) Но, честно говоря - я к ней и не особо стремлюсь :)

- - - Добавлено - - -


На LST-11/83 (0.72 от первого VAX-а с его 1 vup) - 1100/1181 (с и без оптимизации)

Забыл написть.

Достигнута производительность 15 vup-ов :D

Alex
21.05.2020, 13:50
Да и ещё, если, теоретически, мне достанется что-то вроде "Электроники-79" то мне такое просто негде установить :(
Однако для FPGA местечко завсегда найдётся :)

Hunta
21.05.2020, 13:56
Мне приходилось с ней сталкиваться - с двумя экземплярами. Может, конечно, так свезло, но - их ремонтировали по времени больше, чем они работали :) Утрирую, конечно, но прийти и застать электроника за тестами или в недрах оных было - как два пальца :)

- - - Добавлено - - -

В общем, если вдруг кто то предложит подарить (вместо с помещением для них :D ) - я выберу оригинальный PDP-11/70 :D А ещё лучше - MicroPDP-11/93 :D

- - - Добавлено - - -

Ещё вдогонку. Попробовал в лоб выставить тактовую 200 МГц - птичка не взлетела... Пока - не упираюсь :)

Alex
21.05.2020, 14:02
Вопрос в том, где же её взять MicroPDP-11/93... :(
Было время, когда их массово меняли и можно было что-то почти нахаляу... А теперь уже их остались единицы :(

Видно что-то с временными параметрами неладно...

Hunta
21.05.2020, 14:14
где же её взять MicroPDP-11/93
На моей памяти, пару раз она мелькала на ебэе, если только я не путаю с какой нибудь 11/8x или даже с 11/7x, так что если упереться - я думаю - можно :) Но боюсь, что цена будет... Так что пока не стремлюсь к обладанию раритетом :) Хотя и не откажусь :)


Видно что-то с временными параметрами неладно..
Да это как бы понятно. И даже можно найти и попробовать подкрутить, но... цель пока - Ethernet :) Я теперь DE-10 будут использовать для проверок времянок - если на мультиконтроллере запускается, а на DE-10 нет - значит, надо выяснять :) Ну или скажем - на 50-ти работает, а на 100 - нет :) Но периодически буду пробовать и 200 - а фдрукк? :)

Alex
21.05.2020, 14:19
Надо что-то с отладкой думать...

Hunta
21.05.2020, 14:21
Надо что-то с отладкой думать...
Если ты про 200 МГц - это пока не цель. Вот когда Ethernet запуститься - тогда :) Может быть :)

Alex
21.05.2020, 15:32
Тяжело объять необъятное ... Всё не успеваешь :(
Остаётся выбрать Главное.

Hunta
21.05.2020, 15:38
Тяжело объять необъятное ... Всё не успеваешь
Оптимизация - это такое дело, которое невозможно закончить - её можно только прекратить :)

Учитывая, что максимальный результат, который я достиг в прошлый раз - 50 МГц, а на 100.... хм... не помню уже, но судя по этому - или не запускалось, или запустилось считанные разы, причём почти наверняка до загрузки дело не дошло (пробегусь как-нибудь по сообщениям, если что - допишу).. По любому - сейчас очень устойчиво работает, в том числе и под RT-11 - это очень неплохой результат :) Так что - да, в уме буду помнить, но целенаправленно пока не буду заниматься :) Ну и буду перодически тыркать - а фдрук :)

andrews
21.05.2020, 16:09
Второе но - я пока не видел ни одного эмулятора, который бы эмулировал оригинал на 100 процентов. И не увижу. Потому что все эмуляторы работают ПОСЛЕДОВАТЕЛЬНО (да, можно нарисовать многопоточный, но тут с параллельностью мы упрёмся в количество процессоров на целевой системе и то, что целевых систем РЕАЛЬНОГО времени - то есть с предсказуемым временем отклика - сейчас КРАЙНЕ мало, да и писать под них - ещё та задачка...А поэтому сэмулировать ПАРАЛЛЕЛЬНУЮ работу составляющих даже процессор элементов - неа, не получится.
- - - Добавлено - - -
верно замечено всё зависит от того на чём, как и подо что писать. В каждом ПК параллельные ядра с ресурсами+видеокарта в которой параллелизм еще выше. А вот операционки максимально эффективно управляющей всеми этими ресурсами нет, не говоря уже о средствах разработки. Деталей этих архитектур никому кроме Microsoft изготовители железа не откроют. С другой стороны программирование для FPGA более затратный процесс, мало приспособленный для обычных программистов и от этого более трудоемкий. Так что и здесь нет дружественных высокоуровневых средств разработки. Железо FPGA кстати тоже не вечно. Через 20-30 лет об интеловских циклонах вряд ли кто-то вспомнит. Поэтому любую архитектуру, которую есть желание "увековечить" надо хранить в независимом от конкретного железа декларативном коде.

Hunta
21.05.2020, 16:29
В каждом ПК параллельные ядра с ресурсами+видеокарта в которой параллелизм еще выше.
Проблема только в том, что в FPGA - сигналы, СОХРАНИТЬ состояние которых - надо приложить усилия.
А на ПК и видео картах - это вполне себе устойчивые данные, ИЗМЕНИТЬ которые - надо приложить усилия.
Ну и по количеству элементов, которые могут выполнить работу - FPGA уделывают и видеокарты и процы.
Что умеют лучше процессорные и видео ядра - выполнять разные виды работ, в FPGA LE умеют меньше, но кто мешает из них собрать и что то более умное? Благо их хренова туча.


мало приспособленный для обычных программистов
Фигня. Просто люди, особенно с возрастом, с трудом меняют привычный образ мышления, плюс всё хуже и хуже начинают учиться новому. Ну и привычная лень. Главное - захотеть.

Мне в этом плане повезло - и область интересов трижды до FPGA менял и учился новому постоянно - как в школу пошёл.
Так что въехать - чего тут и как - было не сложно, сложно было начать, а потом привычно покатилось.


Так что и здесь нет дружественных высокоуровневых средств разработки.
Ага, конечно.


Через 20-30 лет об интеловских циклонах вряд ли кто-то вспомнит.
Циклон - это конкретная реализация идей FPGA. Закроют это семейство - будет что то своё. Но пока экономически будет оправданным выпуск - будут выпускать.


надо хранить в независимом от конкретного железа декларативном коде.
Вы для начала побольше почитайте про VHDL, Verilog - а потом уже рассуждайте по поводу зависимости.

andrews
21.05.2020, 18:40
Проблема только в том, что в FPGA - сигналыа не данные! Чтобы сделать сигналы виртуальными и отображающимися по желанию разработчика без внешних приборов, на FPGA нужно допилить очень многое. На ПК нет хорошего инструментария для описания моделей, а то что есть - сильно дорого и не сильно высокого уровня. И в этот инструментарий прямо нельзя интегрировать те же vhdl-модельки.


Ну и привычная лень.а это двигатель прогресса. Вот я три дня сидел дятлом, превращая нужный мне листинг в исходный текст на асме. Был бы ленивым, нашел бы почти подходящий инструмент в исходниках, допилил, и получил результат, на который убил часы за несколько секунд.

vhdl- не сильно высокоуровневый инструмент, я его изучал. Вы не можете включить в проект некий чип простым кодом, и внести в него изменения, не залезая в код реализации, как поступают с объектами в ООП. Я не могу вносить изменения в блок регистров, добавлять способы адресации, менять структуру кэшей, конвеера и т.п. Сам vhdl об этом ничего не знает, так как он более низкоуровневый.

А говоря о привязанности к железу, я конечно же имел в виду реализацию. Вы же грузите в железо код, который оно воспринимает. И кто мешает производителям нечто не поддержать в очередной версии инструментария. Надежней было бы иметь описание вот этих команд и исходники инструмента.

Hunta
21.05.2020, 19:10
Чтобы сделать сигналы виртуальными и отображающимися по желанию разработчика без внешних приборов, на FPGA нужно допилить очень многое.
Да ладно! А мой сигналтап то и не знает... Надо его расстроить..


и не сильно высокого уровня
А ничё, что железо - оно само как бы не сильно высокого уровня?


как поступают с объектами в ООП.
Да не дай бог туда ещё ООП приплетут - и получим мы в железе гигабайты LE и будут у нас железки, как современные Windows и Linux. Да ну нах.


Я не могу вносить изменения в блок регистров, добавлять способы адресации, менять структуру кэшей, конвеера и т.п.
А реализовать - ну ни как.


Сам vhdl об этом ничего не знает, так как он более низкоуровневый.
Вот жешь блин, как же это создатели не догадались добавить команду - "А ну быро всё за меня сделать!"


Вы же грузите в железо код, который оно воспринимает.
Аха, конечно. Я в железо гружу результат синтеза, который получен из VHDL, который как бы не зависит от железки

SuperMax
21.05.2020, 19:16
а не данные! Чтобы сделать сигналы виртуальными и отображающимися по желанию разработчика без внешних приборов, на FPGA нужно допилить очень многое. На ПК нет хорошего инструментария для описания моделей, а то что есть - сильно дорого и не сильно высокого уровня. И в этот инструментарий прямо нельзя интегрировать те же vhdl-модельки.

скорее надо перестроить мозги с последовательного "программирования" на "параллельное" и тогда многое становится проще.
ну и надо понимать саму схемотехнику, а не тупо делать какие-то операции не задумываясь как они воплотятся в железе (как часто делают обычные программисты )


а это двигатель прогресса.
скорее убийца ресурсов
ибо развитие стратегии "из амна и палок но зато быстро" привело к тому, что банальный браузер гипертекста жрет ГИГАБАЙТЫ оперативки.


vhdl- не сильно высокоуровневый инструмент, я его изучал. Вы не можете включить в проект некий чип простым кодом, и внести в него изменения, не залезая в код реализации, как поступают с объектами в ООП.
см выше, идеология ООП вредна, хоть и удобна.
грубо говоря ООП убивает производительность на порядок - см хороший пример https://lionet.livejournal.com/118853.html

Hunta
21.05.2020, 20:02
скорее надо перестроить мозги с последовательного "программирования" на "параллельное"
Точно. Да, после занятий 35 лет классическим программированием тяжело это доходило. Но дошло.


ну и надо понимать саму схемотехнику, а не тупо делать какие-то операции не задумываясь как они воплотятся в железе
Сейчас я очень частый гость в RTL viewer - да, во что воплотятся некоторые конструкции - представляю, но когда какое то сложное их соединение... Иногда смотришь, код вроде вполне логичный, а заходишь в RTL и - КАКОГО ХРЕНА ОНА ТУТ НАПЛОДИЛА?? И как показывает практика - как правило в таких случаях не взлетает.


"из амна и палок но зато быстро"
Если это что то одноразовое - то как бы можно (хотя развращает, но когда это будет использоваться постоянно..


идеология ООП вредна, хоть и удобна.
В любой технике (я бы не стал называть это идеологией) программирования надо понимать достоинства, недостатки, ограничения и применимость. И как показывает история развития программирования - золотой пули до сих пор не изобрели - так что применять (любую технологию) не задумываясь.. Я бы канделябром за это. Хорошо - не стремлюсь в управляющие командой. Ну и АГРОМНОЕ спасибо скажем сейчас любителям хайпа, из за которых народ часто начинает что то использовать - не задумываясь. Потому как этот очередной инструмент решил их (микро)проблему (с которой надо было всего лишь подумать) ..

Titus
21.05.2020, 20:07
Второе но - я пока не видел ни одного эмулятора, который бы эмулировал оригинал на 100 процентов. И не увижу. Потому что все эмуляторы работают ПОСЛЕДОВАТЕЛЬНО
Тебе нужна 100% точная эмуляция процессора или что? При чем тут параллельность процессов?

Hunta
21.05.2020, 20:30
Тебе нужна 100% точная эмуляция процессора или что? При чем тут параллельность процессов?
Всё сто раз уже было написано и растолковано.

- - - Добавлено - - -

Вообще сейчас занимательно получается :) Благодаря общей кодовой базе - работают одновременно два квартуса (19.1 и 13.1) - и проверка идёт сразу (ну или почти сразу) на двух циклонах :) Ещё бы из-за этого в два раза быстрее доходило - где накосячил, но... увы :)

Hunta
11.06.2020, 00:29
Работающая операционка или, скажем, SYSGEN - это хорошо, но.. Вот такая картинка - ещё лучше :) :



000042 000000 001066 000006
@DK1
DZQUD-E 21-JUL-76 RKDP - XXDP RK11 MONITOR 28K
RESTART ADDR:152522
BOOTED VIA UNIT#: 1
TO ABORT THE FOLLOWING HELP MESSAGE TYPE CTRL C (^C)

TYPE:
F<CR> TO SET CONSOLE FILL COUNT
D<CR> FOR DIRECTORY ON CONSOLE, OR
D/F<CR> FOR SHORT DIRECTORY ON CONSOLE, OR
D/L<CR> FOR DIRECTORY ON LINE PRINTER, OR
D/L/F<CR> FOR SHORT DIRECTORY ON LINE PRINTER,
R COPY<CR> TO RUN COPY PROGRAM,
R FILENAME<CR> TO RUN ANY OTHER PROGRAM.
L FILENAME<CR> TO LOAD A PROGRAM ONLY
S<CR> TO START THE PROGRAM JUST LOADED,
S ADDR<CR> TO START THE PROGRAM AT SPECIFIC ADDRESS
C FILENAME<CR> TO RUN A CHAIN,
C FILENAME/QV<CR> TO RUN A CHAIN IN QUICK VERIFY MODE.
REFER TO XXDP USER MANUAL MD-11-DZQXA FOR ADDITIONAL HELP.
.L ZQMC??

.S 200

MAINDEC-11-DZQMC-B

MEMORY MAP:
FROM 000000 TO 157777

NO PARITY REGISTERS FOUND
PROGRAM RELOCATED TO 120000##
PROGRAM RELOCATED TO 000000##

END PASS # 1##
PROGRAM RELOCATED TO 120000##
PROGRAM RELOCATED TO 000000##

END PASS # 2##
PROGRAM RELOCATED TO 120000##
PROGRAM RELOCATED TO 000000##

END PASS # 3##
PROGRAM RELOCATED TO 120000##
PROGRAM RELOCATED TO 000000##

END PASS # 4##
PROGRAM RELOCATED TO 120000##
PROGRAM RELOCATED TO 000000##

END PASS # 5##
PROGRAM RELOCATED TO 120000##
PROGRAM RELOCATED TO 000000##

END PASS # 6##
PROGRAM RELOCATED TO 120000##
PROGRAM RELOCATED TO 000000##

END PASS # 7##
PROGRAM RELOCATED TO 120000##
PROGRAM RELOCATED TO 000000##

END PASS # 8##
PROGRAM RELOCATED TO 120000##

Hunta
11.06.2020, 13:18
Ишо кусочек:



000042 000000 000000 000000
@DK1
DZQUD-E 21-JUL-76 RKDP - XXDP RK11 MONITOR 28K
RESTART ADDR:152522
BOOTED VIA UNIT#: 1
TO ABORT THE FOLLOWING HELP MESSAGE TYPE CTRL C (^C)

TYPE:
F<CR> TO SET CONSOLE FILL COUNT
D<CR> FOR DIRECTORY ON CONSOLE, OR
D/F<CR> FOR SHORT DIRECTORY ON CONSOLE, OR
D/L<CR> FOR DIRECTORY ON LINE PRINTER, OR
D/L/F<CR> FOR SHORT DIRECTORY ON LINE PRINTER,
R COPY<CR> TO RUN COPY PROGRAM,
R FILENAME<CR> TO RUN ANY OTHER PROGRAM.
L FILENAME<CR> TO LOAD A PROGRAM ONLY
S<CR> TO START THE PROGRAM JUST LOADED,
S ADDR<CR> TO START THE PROGRAM AT SPECIFIC ADDRESS
C FILENAME<CR> TO RUN A CHAIN,
C FILENAME/QV<CR> TO RUN A CHAIN IN QUICK VERIFY MODE.
REFER TO XXDP USER MANUAL MD-11-DZQXA FOR ADDITIONAL HELP.
.L FFPA??

.S 200

DFFPA, FP11-A 11/34 FPP DIAGNOSTIC PART 1

SWR = 000000 NEW =

END PASS # 1 TOTAL ERRORS SINCE LAST REPORT 0

END PASS # 2 TOTAL ERRORS SINCE LAST REPORT 0

END PASS # 3 TOTAL ERRORS SINCE LAST REPORT 0

END PASS # 4 TOTAL ERRORS SINCE LAST REPORT 0

END PASS # 5 TOTAL ERRORS SINCE LAST REPORT 0

END PASS # 6 TOTAL ERRORS SINCE LAST REPORT 0

END PASS # 7 TOTAL ERRORS SINCE LAST REPORT 0

END PASS # 10 TOTAL ERRORS SINCE LAST REPORT 0

END PASS # 11 TOTAL ERRORS SINCE LAST REPORT 0

END PASS # 12 TOTAL ERRORS SINCE LAST REPORT 0

END PASS # 13 TOTAL ERRORS SINCE LAST REPORT 0

END PASS # 14 TOTAL ERRORS SINCE LAST REPORT 0

END PASS # 15 TOTAL ERRORS SINCE LAST REPORT 0

END PASS # 16 TOTAL ERRORS SINCE LAST REPORT 0

END PASS # 17 TOTAL ERRORS SINCE LAST REPORT 0

END PASS # 20 TOTAL ERRORS SINCE LAST REPORT 0

END PASS # 21 TOTAL ERRORS SINCE LAST REPORT 0

END PASS # 22 TOTAL ERRORS SINCE LAST REPORT 0

000042 000000 001052 000000
@DK1
DZQUD-E 21-JUL-76 RKDP - XXDP RK11 MONITOR 28K
RESTART ADDR:152522
BOOTED VIA UNIT#: 1
TO ABORT THE FOLLOWING HELP MESSAGE TYPE CTRL C (^C)

TYPE:
F<CR> TO SET CONSOLE FILL COUNT
D<CR> FOR DIRECTORY ON CONSOLE, OR
D/F<CR> FOR SHORT DIRECTORY ON CONSOLE, OR
D/L<CR> FOR DIRECTORY ON LINE PRINTER, OR
D/L/F<CR> FOR SHORT DIRECTORY ON LINE PRINTER,
R COPY<CR> TO RUN COPY PROGRAM,
R FILENAME<CR> TO RUN ANY OTHER PROGRAM.
L FILENAME<CR> TO LOAD A PROGRAM ONLY
S<CR> TO START THE PROGRAM JUST LOADED,
S ADDR<CR> TO START THE PROGRAM AT SPECIFIC ADDRESS
C FILENAME<CR> TO RUN A CHAIN,
C FILENAME/QV<CR> TO RUN A CHAIN IN QUICK VERIFY MODE.
REFER TO XXDP USER MANUAL MD-11-DZQXA FOR ADDITIONAL HELP.
.L FFPB??

.S 200

DFFPB, FP11-A 11/34 FPP DIAGNOSTIC PART 2

SWR = 000000 NEW =

END PASS # 1 TOTAL ERRORS SINCE LAST REPORT 0

END PASS # 2 TOTAL ERRORS SINCE LAST REPORT 0

END PASS # 3 TOTAL ERRORS SINCE LAST REPORT 0

END PASS # 4 TOTAL ERRORS SINCE LAST REPORT 0

END PASS # 5 TOTAL ERRORS SINCE LAST REPORT 0

END PASS # 6 TOTAL ERRORS SINCE LAST REPORT 0

END PASS # 7 TOTAL ERRORS SINCE LAST REPORT 0

END PASS # 10 TOTAL ERRORS SINCE LAST REPORT 0

END PASS # 11 TOTAL ERRORS SINCE LAST REPORT 0

END PASS # 12 TOTAL ERRORS SINCE LAST REPORT 0

END PASS # 13 TOTAL ERRORS SINCE LAST REPORT 0

END PASS # 14 TOTAL ERRORS SINCE LAST REPORT 0

END PASS # 15 TOTAL ERRORS SINCE LAST REPORT 0

END PASS # 16 TOTAL ERRORS SINCE LAST REPORT 0

END PASS # 17 TOTAL ERRORS SINCE LAST REPORT 0

END PASS # 20 TOTAL ERRORS SINCE LAST REPORT 0

END PASS # 21 TOTAL ERRORS SINCE LAST REPORT 0

END PASS # 22 TOTAL ERRORS SINCE LAST REPORT 0

END PASS # 23 TOTAL ERRORS SINCE LAST REPORT 0

END PASS # 24 TOTAL ERRORS SINCE LAST REPORT 0

END PASS # 25 TOTAL ERRORS SINCE LAST REPORT 0

000042 000000 001066 000010
@DK1
DZQUD-E 21-JUL-76 RKDP - XXDP RK11 MONITOR 28K
RESTART ADDR:152522
BOOTED VIA UNIT#: 1
TO ABORT THE FOLLOWING HELP MESSAGE TYPE CTRL C (^C)

TYPE:
F<CR> TO SET CONSOLE FILL COUNT
D<CR> FOR DIRECTORY ON CONSOLE, OR
D/F<CR> FOR SHORT DIRECTORY ON CONSOLE, OR
D/L<CR> FOR DIRECTORY ON LINE PRINTER, OR
D/L/F<CR> FOR SHORT DIRECTORY ON LINE PRINTER,
R COPY<CR> TO RUN COPY PROGRAM,
R FILENAME<CR> TO RUN ANY OTHER PROGRAM.
L FILENAME<CR> TO LOAD A PROGRAM ONLY
S<CR> TO START THE PROGRAM JUST LOADED,
S ADDR<CR> TO START THE PROGRAM AT SPECIFIC ADDRESS
C FILENAME<CR> TO RUN A CHAIN,
C FILENAME/QV<CR> TO RUN A CHAIN IN QUICK VERIFY MODE.
REFER TO XXDP USER MANUAL MD-11-DZQXA FOR ADDITIONAL HELP.
.L FFPC??

.S 200

FP11A, 11/34 FPP, DIAGNOSTIC PART 3

SWR = 000000 NEW =

END PASS # 1 TOTAL ERRORS SINCE LAST REPORT 0

END PASS # 2 TOTAL ERRORS SINCE LAST REPORT 0

END PASS # 3 TOTAL ERRORS SINCE LAST REPORT 0

END PASS # 4 TOTAL ERRORS SINCE LAST REPORT 0

END PASS # 5 TOTAL ERRORS SINCE LAST REPORT 0

END PASS # 6 TOTAL ERRORS SINCE LAST REPORT 0

END PASS # 7 TOTAL ERRORS SINCE LAST REPORT 0

END PASS # 10 TOTAL ERRORS SINCE LAST REPORT 0

END PASS # 11 TOTAL ERRORS SINCE LAST REPORT 0

END PASS # 12 TOTAL ERRORS SINCE LAST REPORT 0

END PASS # 13 TOTAL ERRORS SINCE LAST REPORT 0

END PASS # 14 TOTAL ERRORS SINCE LAST REPORT 0

END PASS # 15 TOTAL ERRORS SINCE LAST REPORT 0

END PASS # 16 TOTAL ERRORS SINCE LAST REPORT 0

END PASS # 17 TOTAL ERRORS SINCE LAST REPORT 0

END PASS # 20 TOTAL ERRORS SINCE LAST REPORT 0

END PASS # 21 TOTAL ERRORS SINCE LAST REPORT 0

END PASS # 22 TOTAL ERRORS SINCE LAST REPORT 0

END PASS # 23 TOTAL ERRORS SINCE LAST REPORT 0

00042 000000 001066 000006
@


FPP теперь работает по заветам Ильи.... Э... PDP-11/34 :)

Hunta
13.06.2020, 14:38
Ещё шаг (правда, пока с двумя хаками, ибо ДП ещё нет)



000042 000000 000000 000000
@DK1
DZQUD-E 21-JUL-76 RKDP - XXDP RK11 MONITOR 28K
RESTART ADDR:152522
BOOTED VIA UNIT#: 1
TO ABORT THE FOLLOWING HELP MESSAGE TYPE CTRL C (^C)

TYPE:
F<CR> TO SET CONSOLE FILL COUNT
D<CR> FOR DIRECTORY ON CONSOLE, OR
D/F<CR> FOR SHORT DIRECTORY ON CONSOLE, OR
D/L<CR> FOR DIRECTORY ON LINE PRINTER, OR
D/L/F<CR> FOR SHORT DIRECTORY ON LINE PRINTER,
R COPY<CR> TO RUN COPY PROGRAM,
R FILENAME<CR> TO RUN ANY OTHER PROGRAM.
L FILENAME<CR> TO LOAD A PROGRAM ONLY
S<CR> TO START THE PROGRAM JUST LOADED,
S ADDR<CR> TO START THE PROGRAM AT SPECIFIC ADDRESS
C FILENAME<CR> TO RUN A CHAIN,
C FILENAME/QV<CR> TO RUN A CHAIN IN QUICK VERIFY MODE.
REFER TO XXDP USER MANUAL MD-11-DZQXA FOR ADDITIONAL HELP.
.R FKAA??

000042 000000 000500 052525
@L 24364
@E 024364 005212
@E 024366 022712
@E 024370 000255
@E 024372 001032
@E 024374 012706
@D 137
@D 24470
@L 24470
@E 024470 005212
@E 024472 022712
@E 024474 000256
@E 024476 001033
@E 024500 005067
@D 137
@D 24576
@L 200
@S
END OF DFKAA-B
END OF DFKAA-B
END OF DFKAA-B
END OF DFKAA-B
END OF DFKAA-B
END OF DFKAA-B
END OF DFKAA-B
END OF DFKAA-B
END OF DFKAA-B
END OF DFKAA-B
END OF DFKAA-B
END OF DFKAA-B
END OF DFKAA-B
END OF DFKAA-B
END OF DFKAA-B
END OF DFKAA-B
END OF DFKAA-B
END OF DFKAA-B
END OF DFKAA-B
END OF DFKAA-B
END OF DFKAA-B
END OF DFKAA-B
000042 025766 000500 000011
@

SuperMax
13.06.2020, 15:30
С другой стороны программирование для FPGA более затратный процесс, мало приспособленный для обычных программистов и от этого более трудоемкий.
давайте будем называть вещи своими именами - требующий применения ортогонального мышления: традиционные программирование это последовательные процессы, а тут параллельные.


Так что и здесь нет дружественных высокоуровневых средств разработки.
в смысле нет ООП ? ООП это чистое зло и его не и не будет в HDL тк концептуально оно противоречит парадигме.

ну а HDL это уже высокоуровневое средство разработки. надо только привыкнуть и "начать думать на нем". Собственно как и с любым другим языком программирования.

Hunta
14.06.2020, 14:10
Ещё тесты:



000042 000000 000000 000000
@DK1
DZQUD-E 21-JUL-76 RKDP - XXDP RK11 MONITOR 28K
RESTART ADDR:152522
BOOTED VIA UNIT#: 1
TO ABORT THE FOLLOWING HELP MESSAGE TYPE CTRL C (^C)

TYPE:
F<CR> TO SET CONSOLE FILL COUNT
D<CR> FOR DIRECTORY ON CONSOLE, OR
D/F<CR> FOR SHORT DIRECTORY ON CONSOLE, OR
D/L<CR> FOR DIRECTORY ON LINE PRINTER, OR
D/L/F<CR> FOR SHORT DIRECTORY ON LINE PRINTER,
R COPY<CR> TO RUN COPY PROGRAM,
R FILENAME<CR> TO RUN ANY OTHER PROGRAM.
L FILENAME<CR> TO LOAD A PROGRAM ONLY
S<CR> TO START THE PROGRAM JUST LOADED,
S ADDR<CR> TO START THE PROGRAM AT SPECIFIC ADDRESS
C FILENAME<CR> TO RUN A CHAIN,
C FILENAME/QV<CR> TO RUN A CHAIN IN QUICK VERIFY MODE.
REFER TO XXDP USER MANUAL MD-11-DZQXA FOR ADDITIONAL HELP.
.R FKAB??

000042 000001 000466 177777
@L 14436
@D 137
@D 15232
@L 200
@S
END OF DFKAB
END OF DFKAB
END OF DFKAB
END OF DFKAB
END OF DFKAB
END OF DFKAB
END OF DFKAB
END OF DFKAB
END OF DFKAB
END OF DFKAB
END OF DFKAB
END OF DFKAB
000042 000456 000600 000404
@




000042 000000 000000 000000
@DK1
DZQUD-E 21-JUL-76 RKDP - XXDP RK11 MONITOR 28K
RESTART ADDR:152522
BOOTED VIA UNIT#: 1
TO ABORT THE FOLLOWING HELP MESSAGE TYPE CTRL C (^C)

TYPE:
F<CR> TO SET CONSOLE FILL COUNT
D<CR> FOR DIRECTORY ON CONSOLE, OR
D/F<CR> FOR SHORT DIRECTORY ON CONSOLE, OR
D/L<CR> FOR DIRECTORY ON LINE PRINTER, OR
D/L/F<CR> FOR SHORT DIRECTORY ON LINE PRINTER,
R COPY<CR> TO RUN COPY PROGRAM,
R FILENAME<CR> TO RUN ANY OTHER PROGRAM.
L FILENAME<CR> TO LOAD A PROGRAM ONLY
S<CR> TO START THE PROGRAM JUST LOADED,
S ADDR<CR> TO START THE PROGRAM AT SPECIFIC ADDRESS
C FILENAME<CR> TO RUN A CHAIN,
C FILENAME/QV<CR> TO RUN A CHAIN IN QUICK VERIFY MODE.
REFER TO XXDP USER MANUAL MD-11-DZQXA FOR ADDITIONAL HELP.
.R FKAC??

END PASS##
END PASS##
END PASS##
END PASS##
END PASS##
END PASS##
END PASS##
000042 000456 000600 000404
@


- - - Добавлено - - -

Пока приходится хакать в тестах проверки, прямо или косвенно завязанные на ДП, ибо он не доделан под мой вариант процессора.
Для XU он не требуется, поэтому он отложен в сторону... :)

Hunta
16.06.2020, 22:13
МЛЯЯЯЯЯЯЯ!!!!!! ДВА ДНЯ ВОЕВАТЬ С ОШИБКОЙ... Оказалось - файл испорчен был :D

Итак, по порядку.

1. Я перелопатил обмен по шине со стороны проца.
- Из хорошего - стал очень устойчиво запускаться после синтеза.
- Из плохого - стали дурить прерывания (как мне показалось). Воспроизводилось командой DIR - в произвольных местах проц мог повиснуть.

2. Оказалось - не показалось. Переделал - вернул ближе к тому, что было у автора.
Переделал другие модули под это дело. Перестало работать ваще.
С матом, на второй день нашёл ошибку (тдельные линии запроса, отдельные линии подтверждения - по приоритетам, в RK - запрос шёл по пятой линии, подтверждение принималось по четвёртой(!) :D)
- Из хорошего - заработала DIR
- Из плохого - случайно обнаружил, что SHO ALL зависает при выводе инфы о загруженном в память
- Но при этом SHO MEM (которую неявно выполняет SHO ALL) всё АТЛЫЧНО выводит.
Ну, фули - прерывания не допилил.

3. С матом, два дня пытался понять - ИДЕ??? При это ещё немного разобрался - где что как работает в модуле проца. Даже что то подрихтовал.
Ни хе ра.

4. Не иначе, как было озарение свыше - начал выдавать ВСЕ варианты команды SHOW по отдельности (то есть SHO DEV, SHO CONF и т.д.)
Опаньки! SHO SUB (показать подмонтированные LD) - зависон с теми же признаками.
Полез в исходники RESORC (которая, собственно и отрабатывает SHO).... Почесал почесуемое.
Полез в исходники LD. Почесал почесуемое ишо яростней.
Озарение два - выдал команду LOA LD:
Опаньки - зависон с теми же признаками :)
Почесал почесуемое задумчивое... и выдал SHO DEV.
ХА! У LD вектор (ваще не должно быть) - 2000(8)!!! (такого ВАЩЕ не должно быть - даже в RSX :)
Ну дальше дело техники - сравнил ВСЁ содержимое SD-шки с эталонными файлами на 1201.2018-ой - АХААААА - LD.SYS подпорчен.

Сбросил свежак - проверил - УСЁ РАБОТАЕТ :)

Сегодня буду гонять в режиме тестирования и чистить код.

А вот завтра, похоже - начну работу с XU :)

- - - Добавлено - - -

Вкратце

T1 - BRANCH TEST
T2 - CON BRANCH TEST
T3- UNARY TEST
T4 - UNARY AND BINARY TEST
T5 - ROTATE SHIFT TEST
T6 - COMPARE TEST
T7 - COMPARE NOT TEST
T8 - MOVE TEST
T9 - BIC AND BIT TEST
T10 - ADD TEST
T11 - SUBTRACT TEST
T12 - JUMP TEST
T13 - JSR, RTS, RTI TEST



.R D0AA0
POFLO

.R D0BA0
‡‡‡‡‡‡‡

.R D0CA0
‡‡‡‡‡‡‡‡‡

.R D0DA0
‡‡‡‡‡‡‡‡

.R D0EA0
‡‡‡‡

.R D0FA0
‡‡‡‡

.R D0GA0
‡‡‡

.R D0HA0
‡‡‡‡‡‡‡‡

.R D0IA0
‡‡‡‡‡‡‡‡

.R D0JA0
‡‡‡‡‡‡

.R D0KA0
‡‡‡‡‡‡‡‡

.R D0LA0
‡‡‡‡‡‡‡‡‡

.R D0MA0
‡‡‡‡‡‡‡‡‡‡‡

Hunta
17.06.2020, 16:56
Любимый тест



.BOO RK6:

RT-11SJ (S) V05.00

.SET TT NOQUIET

.TYPE V5USER.TXT


RT-11 V5
--------

Installation of RT-11 Version 5 is complete and you are now
executing from the working volume (provided that you have used
the automatic installation procedure). Digital recommends that
you verify the proper operation of your system's software, by
invoking the verification procedure. To do this, enter the
command:
IND VERIFY

Note that VERIFY should be performed only after the dis-
tribution media has been backed up. This was done as part of
automatic installation on RL02 and RX02 based systems, and on
the Micro/PDP-11 (RD51/RX50). If you have not completed auto-
matic installation, you should perform a manual backup before
using VERIFY. Note also that VERIFY is NOT supported on RX01
floppy disks or DECtape I or II.


.DAT
17-Jun-90

.TIM
16:15:57

.SET TT SCOPE

.INI RK:
RK0:/Initialize; Are you sure? Y

.TIM
16:16:56

.$@SYSGEN.BLD

.$@SYSGEN.MON

.ASSIGN RK5 SRC

.ASSIGN RK0 BIN

.ASSIGN RK0 MAP

.ASSIGN RK0 OBJ

.MACRO/OBJ:OBJ:KMSJ SRC:(SJ+SYSGEN.CND+EDTGBL+KMON+KMOVLY)

.MACRO/OBJ:OBJ:RMSJ SRC:(SJ+SYSGEN.CND+EDTGBL+USR+RMONSJ)

.MACRO/OBJ:OBJ:TBSJ SRC:(SJ+SYSGEN.CND+EDTGBL+SYSGEN.TBL)

.MACRO/OBJ:OBJ:BTSJ SRC:(SJ+SYSGEN.CND+EDTGBL+BSTRAP)

.LINK/EXE:BIN:RT11SJ.SYG/BOU:1000/PROMPT/MAP:MAP:RT11SJ OBJ:BTSJ
*OBJ:RMSJ,KMSJ,TBSJ//
Boundary section? OVLY0

.MACRO/OBJ:OBJ:KMFB SRC:(FB+SYSGEN.CND+EDTGBL+KMON+KMOVLY)

.MACRO/OBJ:OBJ:RMFB SRC:(FB+SYSGEN.CND+EDTGBL+USR+RMONFB)

.MACRO/OBJ:OBJ:TBFB SRC:(FB+SYSGEN.CND+EDTGBL+SYSGEN.TBL)

.MACRO/OBJ:OBJ:BTFB SRC:(FB+SYSGEN.CND+EDTGBL+BSTRAP)

.LINK/EXE:BIN:RT11FB.SYG/BOU:1000/PROMPT/MAP:MAP:RT11FB OBJ:BTFB
*OBJ:RMFB,KMFB,TBFB//
Boundary section? OVLY0

.$@SYSGEN.DEV

.ASSIGN RK5 SRC

.ASSIGN RK0 BIN

.ASSIGN RK0 OBJ

.MACRO/OBJ:OBJ:TT SRC:(SYSGEN.CND+TT)

.LINK/EXE:BIN:TT.SYG OBJ:TT

.MACRO/OBJ:OBJ:LD SRC:(SYSGEN.CND+LD)

.LINK/EXE:BIN:LD.SYG OBJ:LD

.MACRO/OBJ:OBJ:VM SRC:(SYSGEN.CND+VM)

.LINK/EXE:BIN:VM.SYG OBJ:VM

.MACRO/OBJ:OBJ:RK SRC:(SYSGEN.CND+RK)

.LINK/EXE:BIN:RK.SYG OBJ:RK

.MACRO/OBJ:OBJ:NL SRC:(SYSGEN.CND+NL)

.LINK/EXE:BIN:NL.SYG OBJ:NL

.TIM
16:18:26

.SHO ALL

RT-11SJ (S) V05.00
Booted from RK6:RT11SJ

USR is set SWAP
EXIT is set SWAP
KMON is set NOIND
TT is set NOQUIET
ERROR is set ERROR
SL is set OFF
EDIT is set EDIT
KMON nesting depth is 3

PDP 11/34 Processor
56KB of memory
FP11 Hardware Floating Point Unit
Extended Instruction Set (EIS)
50 Cycle System Clock

Device I/O time-out support
SJ timer support

Device Status CSR Vector(s)
------ ------ --- ---------
RK Resident 177400 220
TT Installed 000000 000
NL Installed 000000 000
LD Installed 000000 000
VM Not installed 177572 250
SL -Not installed 000000 000

TT
RK (Resident)
RK0 = BIN, MAP, OBJ
RK5 = SRC
RK6 = DK , SY
LD
NL
9 free slots

Job Name Console Level State Low High Impure
--- ---- ------- ----- ----- --- ---- ------
0 RESORC 0 0 Run 000000 145524 N/A

No multi-terminal support

Address Module Words
------- ------ -----
160000 IOPAGE 4096.
157400 RK 128.
145566 RMON 2501.
001000 ..BG.. 25787.

No LD units mounted


.


Время генерации двух мониторов - примерно 1:50 (примерно, потому что две-четыре секунды я набирал $@SYSGEN.BLD

Сейчас повторю тоже на эмуляторе Патрона и отпишусь

- - - Добавлено - - -

На эмулятора Патрона



.BOO RK5:

RT-11SJ (S) V05.00

.SET TT NOQUIET

.TYPE V5USER.TXT


RT-11 V5
--------

Installation of RT-11 Version 5 is complete and you are now
executing from the working volume (provided that you have used
the automatic installation procedure). Digital recommends that
you verify the proper operation of your system's software, by
invoking the verification procedure. To do this, enter the
command:
IND VERIFY

Note that VERIFY should be performed only after the dis-
tribution media has been backed up. This was done as part of
automatic installation on RL02 and RX02 based systems, and on
the Micro/PDP-11 (RD51/RX50). If you have not completed auto-
matic installation, you should perform a manual backup before
using VERIFY. Note also that VERIFY is NOT supported on RX01
floppy disks or DECtape I or II.


.DAY
Время Дата
17:20:53 17-Июн-1990, Воскресенье

.SHO ALL

RT-11SJ (S) V05.00
Booted from RK5:RT11SJ

USR is set SWAP
EXIT is set SWAP
KMON is set NOIND
TT is set NOQUIET
ERROR is set ERROR
SL is set OFF
EDIT is set EDIT
KMON nesting depth is 3

PDP 11/34 Processor
248KB of memory
Extended Instruction Set (EIS)
KT11 Memory Management Unit
50 Cycle System Clock

Device I/O time-out support
SJ timer support

Device Status CSR Vector(s)
------ ------ --- ---------
RK Resident 177400 220
TT Installed 000000 000
NL Installed 000000 000
LD Installed 000000 000
VM Installed 177572 250
SL -Not installed 000000 000

TT
RK (Resident)
RK5 = DK , SY
LD
VM
NL
8 free slots

Job Name Console Level State Low High Impure
--- ---- ------- ----- ----- --- ---- ------
0 RESORC 0 0 Run 000000 145524 N/A

No multi-terminal support

Address Module Words
------- ------ -----
160000 IOPAGE 4096.
157400 RK 128.
145566 RMON 2501.
001000 ..BG.. 25787.

No LD units mounted


.TIM
17:21:01

.$@SYSGEN.BLD

.$@SYSGEN.MON

.ASSIGN RK5 SRC

.ASSIGN RK0 BIN

.ASSIGN RK0 MAP

.ASSIGN RK0 OBJ

.MACRO/OBJ:OBJ:KMSJ SRC:(SJ+SYSGEN.CND+EDTGBL+KMON+KMOVLY)

.MACRO/OBJ:OBJ:RMSJ SRC:(SJ+SYSGEN.CND+EDTGBL+USR+RMONSJ)

.MACRO/OBJ:OBJ:TBSJ SRC:(SJ+SYSGEN.CND+EDTGBL+SYSGEN.TBL)

.MACRO/OBJ:OBJ:BTSJ SRC:(SJ+SYSGEN.CND+EDTGBL+BSTRAP)

.LINK/EXE:BIN:RT11SJ.SYG/BOU:1000/PROMPT/MAP:MAP:RT11SJ OBJ:BTSJ
*OBJ:RMSJ,KMSJ,TBSJ//
Boundary section? OVLY0

.MACRO/OBJ:OBJ:KMFB SRC:(FB+SYSGEN.CND+EDTGBL+KMON+KMOVLY)

.MACRO/OBJ:OBJ:RMFB SRC:(FB+SYSGEN.CND+EDTGBL+USR+RMONFB)

.MACRO/OBJ:OBJ:TBFB SRC:(FB+SYSGEN.CND+EDTGBL+SYSGEN.TBL)

.MACRO/OBJ:OBJ:BTFB SRC:(FB+SYSGEN.CND+EDTGBL+BSTRAP)

.LINK/EXE:BIN:RT11FB.SYG/BOU:1000/PROMPT/MAP:MAP:RT11FB OBJ:BTFB
*OBJ:RMFB,KMFB,TBFB//
Boundary section? OVLY0

.$@SYSGEN.DEV

.ASSIGN RK5 SRC

.ASSIGN RK0 BIN

.ASSIGN RK0 OBJ

.MACRO/OBJ:OBJ:TT SRC:(SYSGEN.CND+TT)

.LINK/EXE:BIN:TT.SYG OBJ:TT

.MACRO/OBJ:OBJ:LD SRC:(SYSGEN.CND+LD)

.LINK/EXE:BIN:LD.SYG OBJ:LD

.MACRO/OBJ:OBJ:VM SRC:(SYSGEN.CND+VM)

.LINK/EXE:BIN:VM.SYG OBJ:VM

.MACRO/OBJ:OBJ:RK SRC:(SYSGEN.CND+RK)

.LINK/EXE:BIN:RK.SYG OBJ:RK

.MACRO/OBJ:OBJ:NL SRC:(SYSGEN.CND+NL)

.LINK/EXE:BIN:NL.SYG OBJ:NL

.TIM
17:27:42

.


Время генерации - примерно 6:41
Против 1:30 на PDP-2011

Третий вариант - использование HD вместо RK5:

- - - Добавлено - - -

Генерация на эмуляторе Патрона на дисках HD



.BOO HD5:

HD (177720) disk driver v1.6 2017

RT-11SJ (S) V05.00

.SET TT NOQUIET

.TYPE V5USER.TXT


RT-11 V5
--------

Installation of RT-11 Version 5 is complete and you are now
executing from the working volume (provided that you have used
the automatic installation procedure). Digital recommends that
you verify the proper operation of your system's software, by
invoking the verification procedure. To do this, enter the
command:
IND VERIFY

Note that VERIFY should be performed only after the dis-
tribution media has been backed up. This was done as part of
automatic installation on RL02 and RX02 based systems, and on
the Micro/PDP-11 (RD51/RX50). If you have not completed auto-
matic installation, you should perform a manual backup before
using VERIFY. Note also that VERIFY is NOT supported on RX01
floppy disks or DECtape I or II.


.SET TT SCOPE

.SHO ALL

RT-11SJ (S) V05.00
Booted from HD5:RT11SJ

USR is set SWAP
EXIT is set SWAP
KMON is set NOIND
TT is set NOQUIET
ERROR is set ERROR
SL is set OFF
EDIT is set EDIT
KMON nesting depth is 3

PDP 11/34 Processor
248KB of memory
Extended Instruction Set (EIS)
KT11 Memory Management Unit
50 Cycle System Clock

Device I/O time-out support
SJ timer support

Device Status CSR Vector(s)
------ ------ --- ---------
RK Installed 177400 220
TT Installed 000000 000
NL Installed 000000 000
LD Installed 000000 000
VM Installed 177572 250
SL -Not installed 000000 000
HD Resident 177720 000

TT
HD (Resident)
HD5 = DK , SY
RK
VM
NL
LD
7 free slots

Job Name Console Level State Low High Impure
--- ---- ------- ----- ----- --- ---- ------
0 RESORC 0 0 Run 000000 145644 N/A

No multi-terminal support

Address Module Words
------- ------ -----
160000 IOPAGE 4096.
157520 HD 88.
145706 RMON 2501.
001000 ..BG.. 25827.

No LD units mounted


.TIM
17:48:21

.$@SYSGEN.BLD

.$@SYSGEN.MON

.ASSIGN HD5 SRC

.ASSIGN HD0 BIN

.ASSIGN HD0 MAP

.ASSIGN HD0 OBJ

.MACRO/OBJ:OBJ:KMSJ SRC:(SJ+SYSGEN.CND+EDTGBL+KMON+KMOVLY)

.MACRO/OBJ:OBJ:RMSJ SRC:(SJ+SYSGEN.CND+EDTGBL+USR+RMONSJ)

.MACRO/OBJ:OBJ:TBSJ SRC:(SJ+SYSGEN.CND+EDTGBL+SYSGEN.TBL)

.MACRO/OBJ:OBJ:BTSJ SRC:(SJ+SYSGEN.CND+EDTGBL+BSTRAP)

.LINK/EXE:BIN:RT11SJ.SYG/BOU:1000/PROMPT/MAP:MAP:RT11SJ OBJ:BTSJ
*OBJ:RMSJ,KMSJ,TBSJ//
Boundary section? OVLY0

.MACRO/OBJ:OBJ:KMFB SRC:(FB+SYSGEN.CND+EDTGBL+KMON+KMOVLY)

.MACRO/OBJ:OBJ:RMFB SRC:(FB+SYSGEN.CND+EDTGBL+USR+RMONFB)

.MACRO/OBJ:OBJ:TBFB SRC:(FB+SYSGEN.CND+EDTGBL+SYSGEN.TBL)

.MACRO/OBJ:OBJ:BTFB SRC:(FB+SYSGEN.CND+EDTGBL+BSTRAP)

.LINK/EXE:BIN:RT11FB.SYG/BOU:1000/PROMPT/MAP:MAP:RT11FB OBJ:BTFB
*OBJ:RMFB,KMFB,TBFB//
Boundary section? OVLY0

.$@SYSGEN.DEV

.ASSIGN HD5 SRC

.ASSIGN HD0 BIN

.ASSIGN HD0 OBJ

.MACRO/OBJ:OBJ:TT SRC:(SYSGEN.CND+TT)

.LINK/EXE:BIN:TT.SYG OBJ:TT

.MACRO/OBJ:OBJ:LD SRC:(SYSGEN.CND+LD)

.LINK/EXE:BIN:LD.SYG OBJ:LD

.MACRO/OBJ:OBJ:VM SRC:(SYSGEN.CND+VM)

.LINK/EXE:BIN:VM.SYG OBJ:VM

.MACRO/OBJ:OBJ:RK SRC:(SYSGEN.CND+RK)

.LINK/EXE:BIN:RK.SYG OBJ:RK

.MACRO/OBJ:OBJ:NL SRC:(SYSGEN.CND+NL)

.LINK/EXE:BIN:NL.SYG OBJ:NL

.TIM
17:48:21
17:49:39

.


Время генерации 1:18

Итоговая таблица:

PDP-2011 - 1:30
Эмулятор Патрона с RK - 6:41
Эмулятор Патрона с HD - 1:18

Ну что могу сказать... Скорость регистр-регистр - это ещё не всё :) Как и тактовая частота :)

AFZ
20.06.2020, 10:20
Эмулятор Патрона с RK - 6:41
Эмулятор Патрона с HD - 1:18Так неудивительно. Патрон довольно точно эмулирует временнЫе характеристики RK. Поставь у себя реальную скорость RK, а не свой разогнанный вариант, и разницы с эмулятором Патрона вообще не заметишь, ибо все время съест RK.

Hunta
20.06.2020, 10:37
Так неудивительно
Угу, как обычно - что увидел, про то пою. Смысл вовсе не эмуляции RK, иначе тест с HD я бы не делал.

- - - Добавлено - - -

Тактовая частота PDP-2011 - 100 МГц
Скорость передачи для эмулируемого RK - 4800 блоков за примерно 2.5 секунды - 0,9375 мб/с

Время компиляции-сборки двух мониторов RT-11 - 90 секунд


Тактовая частота процессора, на котором работает эмулятор - 2.4 ГГц в 24 раза быстрее
Скорость передачи винчестера, на котором расположен файл виртуального диска - больше 100 мб/с (ниже не падало) - ну пусть в 100 раз быстрее

Время компиляции-сборки двух мониторов RT-11 - 78 секунд - быстрее В 1.15 раз или НА 15 процентов

- - - Добавлено - - -

Это к вопросу о том, что - взять ноут, запустить на нём эмулятора, запихать в коробку и объявить невероятно быстрым PDP-11

AFZ
20.06.2020, 15:38
Это значит, что аппаратная реализация всего в 20 с небольшим раз эффективнее программной. Странно. Я ожидал большего...

Vslav
20.06.2020, 17:07
Это к вопросу о том, что - взять ноут, запустить на нём эмулятора, запихать в коробку и объявить невероятно быстрым PDP-11
Смотря какой компьютер взять. Например, Jetson с правильной эмуляций периферии и PDP-11 на CUDA порвет младшие FPGA без вопросов.

Hunta
20.06.2020, 17:39
порвет младшие FPGA без вопросов.
PDP-2011 далеко не оптимально написан. Во-первых, КМК, в начале написания человек только начинал знакомится с FPGA, во-вторых - стиль написания - программиста, а не железячника, в третьих - писалось по принципу - главное, что бы заработало.

То есть в нём много над чем можно поработать. Но, пока времени и знаниев-уменьем не хватает.

И основной тормоз сейчас - сам процессор (плюс обмен по внутренней шине). Скажем - пересылка регистр-регистр сейчас - пять тактов. Сделать её три - и скорострельность прыгнет за 20 лимонов, а сделать два - и будет за 30. Так что - про младшие FPGA, особенно современные (то есть возможность использовать более быстрый клок) - далеко не факт.

Ещё один небольшой кусок процессора переделаю - и на этом остановлюсь. Но ускорения (на той же клоковой частоте) - это не даст.

Возможно, переделаю обмен по шине - если придумаю как. Технически - это будет минус один такт на каждый обмен.

Vslav
20.06.2020, 19:43
PDP-2011 далеко не оптимально написан.
Речь не про оптимальность, я хочу немного с CUDA поиграться, там много исполнительных блоков и можно выстраивать конвейеры обработки, может получиться вполне превосходящая замена младшим FPGA для эмуляции PDP-11.

Сделать её три - и скорострельность прыгнет за 20 лимонов, а сделать два - и будет за 30. Так что - про младшие FPGA, особенно современные (то есть возможность использовать более быстрый клок) - далеко не факт.
Ну, это несерьезно. Даешь суперскалярный PDP-11 на GPU! Хороший конвейер, пред-декодирование инструкций, предвыборки данных (подсистема памяти там вообще сказка) - получаем один GPU такт на инструкцию PDP-11 (а может и на две-три), да 1GHz. Скока-скока МИПС? Не, оно понятно что HDL-имплементация быстрее. Чисто теоретически. Это если испечь современный ASIC. А вот если посмотреть что доступно и реально - то Jetson за $150 скорее всего разорвет FPGA-шные реализации по скорости.

PS. Мне когда-то предлагали поучаствовать в разработке ASIC для майнинга Etherium. Я посмотрел на алгоритм, прикинул и понял что самый быстрый ASIC для этой крипты - это GPU, и лучше сделать не получится. С тех пор прошло несколько лет, ASIC-майнеры таки появились, но они все делают упор на энергоэффективности, а не на скорости :)

Hunta
20.06.2020, 20:02
я хочу немного с CUDA
С программированием наигрался, так что не тянет. Да и принципиально нового ни в программировании ни в процессорах уже давно не было.


Даешь суперскалярный PDP-11 на GPU!
А зачем? Суперскаляр можно и на FPGA сделать :) Но вот сама эта идея (суперскалярность) мне не сильно нравится. Так что.. попробую пойти другим путём :) Я пока учусь, но в задумках сделать ещё один процессор на FPGA и попробовать что то новое придумать :) Если, конечно, руки дойдут :)

Vslav
20.06.2020, 20:08
С программированием наигрался, так что не тянет. Да и принципиально нового ни в программировании ни в процессорах уже давно не было.
Не скажи. Даже программирование с использованием SSE2/Neon/Vector дает новые ощущения. А уж CUDA ... Программирование - оно разное, оказывается :)



А зачем? Суперскаляр можно и на FPGA сделать :)

Конечно, можно. Только какая там частота выйдет и сколько ресурсов понадобится? А в итоге не факт что самые толстые и быстрые FPGA за $100K завалят по скорости Jetson за $150.

Hunta
20.06.2020, 20:12
Не скажи
Скажу :) Как человек, начавший программировать 37 (а если принять во внимание программируемые калькуляторы - то 39) лет назад :)


Только какая там частота выйдет и сколько ресурсов понадобится?
Вот поэтому я и говорю - не интересен мне суперскалярный PDP-11 :) Не интересно реализовывать чужие идеи :) Попробую родить свою :)

Vslav
20.06.2020, 20:21
Скажу :) Как человек, начавший программировать 37 (а если принять во внимание программируемые калькуляторы - то 39) лет назад :)

Давай я тебе скажу "как художник художнику" (c) - апеллировать к годам опыта в споре - оно совсем не аргумент, а наоборот. Это флажок, сигнализирующий что реальных аргументов нет.
Ты с использованием SSE2 программировал? Если да, то совсем разницы не увидел? Там алгоритмы интересно меняются.

yu.zxpk
20.06.2020, 20:41
Даешь порт 1801вм1 на Verilator, даешь новый backend в Verilator, который транслируется в kernel-функции CUDA. Так победим! :)

Hunta
20.06.2020, 20:43
апеллировать к годам опыта в споре
Это был не аргумент, эта была информация к размышлению - за эти 37 я повидал очень много чего в компах :) Так что меня теперь очень трудно чем то новым удивить - подавляющее большинство идей, которые преподносятся (сейчас) как новые - мне уже знакомы :) Может, не все - практически, но - знакомы


Ты с использованием SSE2 программировал?
Конкретно именно с SSE - нет, но однажды пришлось писать модуль обработки массива данных под одну железяку, в которой у проца был очень похожий (по идее) набор команд. Так что в самой идее SSE для меня - ничего нового.

Ну и применимо это дело для определённого класса алгоритмов. А значит, на обычных задачах этот модуль (в проце) будет простаивать. То есть получается, как в современных программах - объём кода - гигантский, но (условно говоря) - 99 процентов его используется в 1 проценте случаев использования :) Как не нравится мне это в программах, так не будет нравится и в процах :)

- - - Добавлено - - -


Даешь порт 1801вм1 на Verilog
Он уже есть.


Так победим!
Аха, конечно :)

yu.zxpk
20.06.2020, 20:45
Он уже есть.

Аха, конечно :)

Я хотел сказать Verilator :)

Hunta
20.06.2020, 20:53
Я хотел сказать Verilator
Ну так в чём дело - перепишите :)

Мне вон много чего в PDP-2011 не нравится - ничего, переделываю :)

yu.zxpk
20.06.2020, 21:06
Это была шутка, на самом деле. Тему эту поднимали лет 10 тому. Модель работы verilator плохо ложится на много мелких CPU, большие накладные расходны на синхронзацию.

Vslav
20.06.2020, 21:13
Даешь порт 1801вм1 на Verilog, даешь новый backend в Verilog, который транслируется в kernel-функции CUDA. Так победим! :)
Не, Юр. У меня есть интересная идея с динамической трансляцией инструкций PDP-11 в микроинструкции и параллельном out-of-order исполнении на CUDA. Даже в недорогом Jetsone ресурсов хватит чтобы пытаться одновременно десяток инструкций транслировать, отслеживать зависимость аргументов и прочее. В итоге конвейер будет длинный, на десяток тактов и достаточно простой, но их будет много - несколько десятков слотов и с исполнением нескольких веток (ложные выбросим, правильные закоммитим в реальность), в итоге ретайрить на выходе 1-2 инструкции PDP за такт может быть реально, а FPGA встанут на подсос :). Интересно потрогать идею и сделать не сильно сложную реализацию, на CUDA оно видится проще и быстрее чем на HDL.

А верилог ВМ1 - он довольно линейный и не особо архитектурно поражает. Одно АЛУ на все-про-все? Не, для того транзисторного бюджета что тогда был - оно великолепно вышло. Но сейчас ресурсы немножко другие, можно попробовать другой интересный подход, хотя и программный. В CUDA на самом деле много интересного и способного удивить даже после многих лет классического опыта. Ну - меня, по крайней мере. Я не утратил способность радоваться и удивляться? Так победим! :)

Hunta
20.06.2020, 21:15
Это была шутка
Ясно :)


плохо ложится на много мелких CPU, большие накладные расходны на синхронзацию
Наверное, имелись ввиду GPU? Если да - для меня ничего удивительного - GPU и CUDA заточены под исходно параллельные алгоритмы, то есть, скажем, какой-нибудь CRAY, скорее всего, будет проще сделать (ибо всякие вопросы синхронизации уже решены - в нём). А много ли параллелизма в PDP-11? :) Вот и придётся самому решать их в реализации под CUDA :)

Vslav
20.06.2020, 21:41
большие накладные расходны на синхронзацию.
Надо использовать нативную синхронизацию по данным, в GPU все есть для построения сложных конвейеров, но оно реально на общий случай ложится неважно. А вот продумать алгоритм чтобы нативные средства GPU использовать и задействовать их в эмуляции - результат может быть поразительным.

- - - Добавлено - - -



А много ли параллелизма в PDP-11? :)

Параллелизьму в любом старом кода маловато. Но даже если out-of-order окажется неподъемным, то 1 такт на инструкцию должен получится, и в итоге - 1801ВМ1 на Jetson с эквивалентной частотой 3GHz. Как, на FPGA осилишь? :)

yu.zxpk
20.06.2020, 21:43
Согласен, что надо нативные средства синхронизации SM в gpu использовать. И тут конвейеры между блоками pdp-11 cpu ложаться идеально, кмк

Hunta
20.06.2020, 21:46
Параллелизьму в любом старом кода маловато.
Я не про код :) Я про систему команд :) Если система команд не содержит механизмы параллельного выполнения - чем ты что старый, что новый код распараллелишь? :)


Как, на FPGA осилишь?
Пока нет - знаниев не хватат :)

Vslav
20.06.2020, 22:05
Я не про код :) Я про систему команд :) Если система команд не содержит механизмы параллельного выполнения - чем ты что старый, что новый код распараллелишь? :)

Начиная с Pentium x86 умеет в out-of-order. Самая "простая" реализация - берем поток команд, грузим одновременно в 10 конвейров в каждый свою, разбираем-маркируем вовлеченные исходные данные, есть зависимость по данным (помечены как ждущие коммита от других команд) - ждем результатов, нет зависимости - выполняем, ждем своей очереди на коммит, финальная проверка что ничего в исходных не поменялось - коммит в реальное состояние процессора. Поскольку все делалось в параллель в 10 блоках, то в какой-то такт может оказаться что завершилось несколько команд и надо просто реализовать широкий коммит их результатов. Все br и большинство jmp/jsr/rts/sob будут просто выполняться эквивалентно за 0 тактов (по факту - в фоне, во время исполнения предыдущих команд), заметная часть независимых mov и арифметики тоже, исключение за один такт - красота. Вот с флажками и автоинкрементом/декрементом может оказаться не так быстро, это да, усиливате зависимости. Но это все в порядке бреда. Для начала более реальная реализация на одну инструкцию за такт, там наработаются блоки декодирования, загрузки-записи и прочее, станет понятнее как оно дальше может быть. На FPGA с таким играться - это надо команду типа интеловской нанимать, а потрогать идею на CUDA - уже можно и самому пробовать.

По ветвлению интересно можно сделать, на каждое ветвление порождать свою ветку виртуального состояния процессора - конвейеров у нас много, можно тащить сразу две ветки, для выполненного и пропущенного условия перехода. Если дальше опять ветвления - новые ветки породить. По коммиту инструкции ветвления - ложные ветки убивать, верные коммитить в реальность. Такой себе мета-квантовый подход :)

Hunta
20.06.2020, 22:12
Для начала более реальная реализация на одну инструкцию за такт
Эт когда конвейер прогреется :)
А учитывая количество флажков и количества команд условных переход, плюс набор режимов адресации...

Vslav
20.06.2020, 22:18
Эт когда конвейер прогреется :)
А учитывая количество флажков и количества команд условных переход, плюс набор режимов адресации...
Надо пробовать, вот после ВМ3 и займемся. C FPGA все понятно уже. А вот 1801ВМ1 3GHz поиметь заманчиво. Не, я понимаю, не для всех это новинка, но мне - интересно :)

Hunta
20.06.2020, 22:23
вот после ВМ3 и займемся
Да да, у меня к ВМ3 вопросы есть :D


А вот 1801ВМ1 3GHz поиметь заманчиво
Ну попробуй :)

Titus
21.06.2020, 03:00
А вот 1801ВМ1 3GHz поиметь заманчиво. Не, я понимаю, не для всех это новинка, но мне - интересно
Друзья, зачем вам такие быстрые PDP? Что в прикладном плане вы собираетесь на них решать? Или это исключительно спортивный интерес?

Vslav
21.06.2020, 09:38
Друзья, зачем вам такие быстрые PDP? Что в прикладном плане вы собираетесь на них решать? Или это исключительно спортивный интерес?
И спортивный, и оглядеться, попробовать чего нового. C FPGA и обычными эмуляторами более-менее уже понятно, а чего можно выжать с эмуляции на GPU - пока нет.

Hunta
21.06.2020, 11:58
зачем вам такие быстрые PDP

Что в прикладном плане вы собираетесь на них решать?

Пощупать свои возможности - сделать такой проц PDP-11

shattered
21.06.2020, 13:17
Друзья, зачем вам такие быстрые PDP? Что в прикладном плане вы собираетесь на них решать? Или это исключительно спортивный интерес?

наконец-то можно будет написать doom для pdp, чего непонятного :-)

Hunta
21.06.2020, 14:15
наконец-то можно будет написать doom для pdp, чего непонятного
Интересная мысль :)

Hunta
23.06.2020, 21:33
Решил на синтезированном PDP-11/34 поразвлекаться с FPP. Пусть недолгих раздумий вспомнил про Whetstone :)
Ну, поскольку всякие блокировки работы RT-11 не делались, да и сам тест написан на Фортране, результаты, конечно, приблизительные :) Что бы примерный порядок быстродействия представлять :)



.RUN RK:WHTSTN
ITERATIONS ?
300
300 iterations
481.2667236328 sec on iterations
1.604222416878 sec on iteration
0.6233549714088 Double Whetstone MIPS
STOP

.


В силу специфики реализации FPP в PDP-2011 расчёты всегда ведутся в double precision
Для сравнения (столбец MWIPS DP):



Supplier or Clock VAX MWIPS Intr
System MHz MWIPS MFLOPS MIPS DP Lang Opt Date
PDP 11/03 0.0027 Bas 1975
PDP 11/03 0.0267 0.0029 For 1975
PDP 11/10 0.0129 0.0032 For 1970
PDP 11/20 EAE 0.0188 0.0054 For 1970
PDP 11/34 FP 0.204 0.157 For 1976
PDP 11/34 NoF 0.0057 Bas 1976
PDP 11/34 NoF 0.029 0.0069 For 1976
PDP 11/40 EF 0.0655 0.0073 For 1973
PDP 11/45 FPP 0.189 0.075 For 1972
PDP 11/55 FP 0.714 0.552 For 1977
PDP 11/60 FPP 0.118 0.039 For 1977
PDP 11/60 FP 0.591 0.435 For 1977
PDP 11/70 FP 0.532 0.415 For 1975
VAX 11/780 FPA 5 0.494 Pas 1977
VAX 11/780 FPA 5 1.18 0.760 For Opt 1977
VAX 11/780 FPA 5 1.02 0.25 1.00 For No 1977
VAX 11/780 noF 5 0.740 0.253 For Opt 1977
VAX 11/730 1.23 0.254 0.156 For Opt 1982
VAX 11/750 0.680 0.20 0.63 0.510 For Opt 1980
VAX 11/785 7.41 1.65 0.46 1.73 1.07 For Opt 1984


- - - Добавлено - - -

Занимательно. Прошлый запуск был под RT-11 v5.0.
Ниже результат теста под RT-11 v5.7



.@W

.FORTRAN/F77/LIST:WHTSTN WHTSTN

.LINK WHTSTN,SY:FORLIB/LIBR

.RUN WHTSTN
ITERATIONS ?
300
300 iterations
481.2734375000 sec on iterations
1.604244828224 sec on iteration
0.6233462691307 Double Whetstone MIPS
STOP

.


Очень похоже результаты :)

ilynxy
24.06.2020, 15:00
По ветвлению интересно можно сделать, на каждое ветвление порождать свою ветку виртуального состояния процессора - конвейеров у нас много, можно тащить сразу две ветки, для выполненного и пропущенного условия перехода. Если дальше опять ветвления - новые ветки породить. По коммиту инструкции ветвления - ложные ветки убивать, верные коммитить в реальность. Такой себе мета-квантовый подход :)Весь out-of-order прекрасен, пока не изменяется внешнее состояние (например запись/чтение периферийных адресов нельзя ни переупорядочивать, ни откатывать), однако если принять, что страница ввода/вывода находится всегда по фиксированным адресам (как в большинстве реализаций), то можно считать что запись/чтение RAM не имеет побочных эффектов — вот уж правда безграничный простор для оптимизаций. Оно и так порвёт FPGA без вопросов, а если сделать что RAM не имеет побочных эффектов то отрыв будет космическим.

AlexG
24.06.2020, 15:27
Про "out-of-order" и тд ещё на лекциях/учебниках 80 годов слушал/читал. и про sisd и simd итд и про кеш инструкций во времена ферритовой памяти. Достаточно взять "правильный учебник" и не изобретать "велосипед".

Hunta
24.06.2020, 15:32
Дальнейшее обсуждение PDP-11 не на FPGA - не здесь. Создавайте тему и хоть заобсуждайтесь. Эта тема - напомню - PDP-11 на FPGA.

Hunta
20.09.2020, 15:03
Пришла в голову мысль :)
Результат :)



.COP HX7:SPEED3.SAV SY:
Files copied:
HX7:SPEED3.SAV to SY:SPEED3.SAV

.RUN SPEED3

Тест быстродействия

R1+R0 classic 831 186 оп./сек
R1(23456.)+R0(12345.) empty 5 468 713 оп./сек
R1(23456.)+R0(12345.) 3 943 726 оп./сек -> 14 142 484 оп./сек
R1+@R0 classic 10 875 844 оп./сек
R1(23456.)+@R0(M-12345.) empty 5 468 713 оп./сек
R1(23456.)+@R0(M-12345.) 3 652 703 оп./сек -> 10 999 710 оп./сек
R0*R0 classic 8 179 911 оп./сек
empty 11.*12. 5 468 713 оп./сек
11.*12. 3 288 676 оп./сек -> 8 249 779 оп./сек
R2/R0 classic 3 522 725 оп./сек
R2-R3(34567.)/R1(321.) empty 4 107 349 оп./сек
R2-R3(34567.)/R1(321.) 1 900 050 оп./сек -> 3 535 619 оп./сек
34567.89022+32109.754321 empty 1 829 811 оп./сек
34567.89022+32109.754321 1 412 180 оп./сек -> 6 187 334 оп./сек
34567.89022*32109.754321 empty 1 829 811 оп./сек
34567.89022*32109.754321 797 706 оп./сек -> 1 414 246 оп./сек
34567.89022/32109.754321 empty 1 829 811 оп./сек
34567.89022/32109.754321 785 055 оп./сек -> 1 374 964 оп./сек
MOV 8 word 1 empty 3 689 599 оп./сек
MOV 8 word 1 552 741 оп./сек -> 650 138 оп./сек
MOV 8 word 2 empty 3 652 703 оп./сек
MOV 8 word 2 622 224 оп./сек -> 749 980 оп./сек
.


запуска Speed3 на моём PDP-2011 :)
Строки с CIS удалил (нету его в PDP-2011 ни в каком виде).
Интересен результат


R1+R0 classic 831 186 оп./сек

Думаю - проц слишком быстрый для классического алгоритма SPEED-а в моём варианте - и идёт переполнение счёт. Меньшие по значениям результаты для сложения регистр-память, умножение и деление - как бы намекают на это. Может, подумаю и поправлю.

Нетронутый SPEED



.RUN SPEED

ТЕСТ БЫСТРОДЕЙСТВИЯ

КОМАНДА СЛОЖЕНИЯ РЕГИСТР-РЕГИСТР
БЫСТРОДЕЙСТВИЕ (ТЫС.ОП./СЕК) 14216

КОМАНДА СЛОЖЕНИЯ РЕГИСТР-ПАМЯТЬ
БЫСТРОДЕЙСТВИЕ (ТЫС.ОП./СЕК) 11064

КОМАНДА УМНОЖЕНИЯ РЕГИСТР-РЕГИСТР
БЫСТРОДЕЙСТВИЕ (ТЫС.ОП./СЕК) 8288

КОМАНДА ДЕЛЕНИЯ РЕГИСТР-РЕГИСТР
БЫСТРОДЕЙСТВИЕ (ТЫС.ОП./СЕК) 3560

Цифры чуть побольше, потому что у меня блок инструкции меньше - соответственно - накладные расходы подросли, а классический SPEED их никак не учитывает.

Щас ещё прогоню генерацию всех шести мониторов RT в варианте - для теста быстродействия.

Hunta
01.11.2020, 14:24
После долгого перерыва (запуск программ SPEED3 и аналогов не в счёт) вернулся к PDP-2011. Ну как вернулся. Пока период вспоминания - чего я там творил и делал, так что внесённых изменений мало, в основном попричёсывал код в авторском MMU под моё видение. Пока ещё не пробовал подключать - процесс причёсывания не закончен.

Из интересного, найденного в коде.

MMU у автора работает так, что если идёт обращение процессора в область 17xxxxxx и в моделе есть модуль UMAP, то MMU прогоняет отображение адреса (точнее, его нижних 18 бит) через UMAP, то есть - по аналогии с обращением Unibus устройств к 22-битной памяти.

Как то даже и не задумывался над этим - думал, что UMAP работает только при обращении к 22-ух битной памяти со стороны Unibus устройств. У тут и процессорное обращение идёт через него.. В доках пока не попадалось, а проверить в реале - не на чем...

Так же развернул Quartus в виртуалке, которая работает на более быстром сервера, чем мой рабочий комп. Синтез ускорился примерно в полтора раза :) Мои действия остались почти те же самые, только настроил на рабочей машине бластер-сервер и надо перед первой прошивкой не забыть его запустить :)

Правда, когда удастся хорошо посидеть за кодом - пока не знаю - на работе небольшой армаггедец, домашние дела тоже никто не отменял, плюс пытаюсь ещё и одну прогу для xolod добить :)

Hunta
01.11.2020, 21:37
Решил проверить одну хрень. Переделал код, запустил синтез, а в это время смотрю, как щёлкает проц в DE10 на тактовой 1 Гц - хорошо видно, как бежит внутренний state machine. И в очередной раз задумался - как ввод-вывод делать за один тик, а не за два.. Ибо на этом много теряется.. Но пока в голову ничего не приходит :)

Titus
01.11.2020, 21:41
А куда в наше время можно применить сверхбыстрый PDP11? Есть ли практическая от этого польза?

Hunta
01.11.2020, 21:53
Кстати - стейт машина в PDP2011 сильно напоминает микропрограммное управление :) Сейчас - на 276(8) микроопераций, правда многие из них - дублируются. Не совсем правильно, конечно, но пока пусть будет так :)

- - - Добавлено - - -


А куда в наше время можно применить сверхбыстрый PDP11? Есть ли практическая от этого польза?
Ответ уже был

- - - Добавлено - - -

От ступил так ступил :):):) Правил код, который связан в поддержкой разделения код-данные, а модель процессора (PDP-11/34), которая её не поддерживает :D Вот удивился, когда результат тот же получился :D

Hunta
06.11.2020, 18:22
Программист. Повторное использование кода :)

Поскольку в PDP-2011 несколько DMA устройств, что бы не писать код несколько раз (в будущем) - вырезал модуль общения по DMA из RK2011 (единственный пока переделанный и работающий, в том числе - через DMA контроллер дисков) для повторного использования.

Ну и предварительно переделал код в RK2011, что бы его было проще вырезать :)

Hunta
23.11.2020, 21:18
Работа отнимает много времени (конец года), но стараюсь вечерами повозиться с моим вариантом PDP-2011.

Ещё шаг к стандартизации векторных прерываний. Надеюсь, как и с DMA, выделить в отдельный модуль для повторного использования. Частично уже можно выделить сейчас, но мешает RK11 - у него несколько причин для прерываний. Потихоньку причёсываю код для (возможного) достижения цели.

Так же пытаюсь реализовать возможность модулям (ака платам в корзине) работать на разных тактовых частотах (в QBus/МПИ нет же единого тактового генератора :) ). Что то уже получается :)

- - - Добавлено - - -

Надо возвращать MMU. Без него сложно гонять тесты, рассчитанные на PDP-11/34. Так что на очереди он :)

Hunta
24.11.2020, 14:45
Наконец добрались руки сделать переключение тактовой (быстро или 1 Гц) по правильному, раньше при попытке переключиться с высокой на низкую проц зависал, а с медленной на быструю - часто зависал - ибо переключатель на плате без устранения дребезга. Теперь работает веру гуд :)

- - - Добавлено - - -

Гы :) Поймал на выводе строки в тесте - по одной буковке - шлёп шлёп шлёп :):)

- - - Добавлено - - -

Хренушки, не всё так просто - на обработке прерываний - застревает... Но всё равно - уже лучше, чем было :)

Hunta
24.11.2020, 21:42
Судя по экспериментам, застревает на подтверждении прерывания от проца.

Перещёлкивание во время ПДП не сказывается - cop/dev/ver проходит без проблем, главное, перещёлкнуть на быстрый клок до того, как процессору зачешется выдать подтверждение прерывания.

Да и то, вроде критический момент - снятие устройством своего запроса на прерывание.

- - - Добавлено - - -

Поигрался с тактовой устройств на шине (снизил с 50 до 20 МГц) - работают. Попробовал снизить тактовую проца до 20 МГц - частично работает (система, например, не загрузилась). Ну, в общем, ожидаемо - я начал с того, что попроще - и перепахал обмен с шиной у периферии. Проц пока не трогал. Значит, надо и его потрогать :)

Hunta
29.11.2020, 20:51
Война с в/в со стороны процессора (в первую очередь - из памяти) продолжается. Пока счёт сколько то там : 1 не в мою пользу. Пока не знаю, как (лучше) определить, что запрос на в/в - это уже выставленный новый, а не ещё не снятый старый. Штуки три вариантов попробовал, но всё они правильно отработали только если или память работает медленней проца или проц очень сильно медленней (1 Гц) памяти. Да и то в варианте явного шага - закончить в/в. Пока плюнул. Попричёсывал код в процессоре и перешёл к разборкам с ДП.

Думаю, как его аккуратно прицепить к процессору, корзине и 18 битным устройствам с ПДП (читай - UMR).

Задачу усложняет то, автор PDP2011 обращение со стороны процессора к верхним 256 кб памяти (минус страница в/в) пропускает то же через блок UMR.
- В доках этот момент пока не попадался,
- Unibus процессора под рукой, на котором можно было провести натурную проверку нет,
- логические рассуждения пока приводят к выводу - вполне возможно, что оно действительно так,
- но вот PDP-11/84 и PDP-11/94 с PMI памятью, опять же, логическими рассуждениями, а так же один из вопросов в SYSGEN от RSX-11M-Plus говорят, что, по крайне мере на этих машинах - возможно, что и не так.

Можно было бы, конечно, в описании процессоров сделать ещё один флажок - как идёт обращение в область UMR со стороны проца - напрямую в память или через UMR, но пока это не только не упростит задачу, но и усложнит. Хотя, опять же, по логическим рассуждениям, это будет самый правильный вариант.

В общем, надо подумать.

Hunta
05.12.2020, 01:34
Потихоньку клепаю (точнее, переделываю под моё видение) ДП.

На неделе было мало свободного времени, плюс ещё влетел во взаимное непонимание с синтезатором - то, что я ему нарисовал - приводило к странному результату и сбоях при работе ПДП. На ПДП сидит RK2011, так что - системы не грузились.

В пятницу вечером не то, что бы осенило, но очередной вариант соединения сигналов вдруг взлетел - то есть и результат синтеза понятен и системы грузятся (ДП ещё не рабочий). Так что некоторое количество кода (чтение из PAR регистров) было написано быстро.

Утром днём субботы постараюсь доделать запись в PAR и чтение-запись в PDR.

Если всё пойдёт нормально - может и до управляющих регистров доберусь и тогда можно будет попробовать включить ДП :)

Hunta
07.12.2020, 20:57
Некоторое количество косяков, некоторое количество не понимания, почему так (понял), исправление того, что красиво для программиста на то, что красиво для синтезатора и...

Есть полный набор PAR-ов и PDR-ов с чтением и записью. Для PDR-ов функционал битов реализован не совсем полностью - есть два бита, которые для программиста только читаемые - их сбрасывает и устанавливает сам MMU. Поскольку MMU ещё не работает (точнее, работает только на преобразование адреса с выключенным MMU), то и эти биты - тоже не работают. И пока не учитывается размер PAR-ов и функционал пары битов в PDR, зависящие от модели процессора.

Ещё не проверял работоспособность регистров, в зависимости от того, какой процессоров выбран, но этим займусь завтра, благо, что при благоприятном стечении обстоятельств всё, что понадобиться - выставить флажки, пересинтезировать, прошить и прогнать тесты. Это если всё окажется работоспособным.

Потом добью биты, которые работают или нет в зависимости от модели процессора.

А потом можно будет попробовать добавить регистр включения функционала MMU :)

Hunta
08.12.2020, 18:09
Очередной шаг - почти все регистры реализованы.

SR0 реализован, но пока не работает как SR0, просто можно читать и писАть.

UMR пока не реализованы, но есть реализация как самостоятельный модуль, думаю прикруть оттуда.

Доскональной проверки, что все они работают в соответствии с манаюлом - пока не делал.

Теперь, собственно, включение работы SR0 и MMU.


Из занимательного. Думал, из за того, что SR0 есть, но не работает, RT-11 не загрузится. Однако, SB монитору это не помешало. Пусть и с приколами :)



@DK3
RT-11SB (S) V05.07
?KMON-F-File not found DK:STRTSB.COM

.SHO CONF

RT-11SB (S) V05.07
Booted from RK3:RT11SB

USR is set SWAP
EXIT is set SWAP
KMON is set NOIND
MODE is set NOSJ
TT is set NOQUIET
ERROR is set ERROR
SL is set OFF
EDIT is set KED
FORTRAN is set FORTRA
KMON nesting depth is 3
Global .SCCA flag is disabled

CLI is set DCL, CCL, UCL, NO UCF

PDP 11/34 Processor
4088KB of memory
Extended Instruction Set (EIS)
Memory Management Unit
50 Hertz System Clock

Device I/O time-out support
SB timer support
Global .SCCA support
Extended unit support


.


- - - Добавлено - - -

Вдогонку - на самом деле памяти 128 кб :):):)

Hunta
10.12.2020, 16:08
О как я умею :D



Flow Status In progress - Thu Dec 10 17:06:51 2020
Quartus Prime Version 20.1.0 Build 711 06/05/2020 SJ Lite Edition
Revision Name PDP2011
Top-level Entity Name PDP2011
Family Cyclone V
Device 5CSXFC6D6F31C6
Timing Models Final
Logic utilization (in ALMs) 3,333 / 41,910 ( 8 % )
Total registers 2453
Total pins 155 / 499 ( 31 % )
Total virtual pins 3
Total block memory bits 1,058,880 / 5,662,720 ( 19 % )
Total DSP Blocks 1 / 112 ( < 1 % )
Total HSSI RX PCSs 0 / 9 ( 0 % )
Total HSSI PMA RX Deserializers 0 / 9 ( 0 % )
Total HSSI TX PCSs 0 / 9 ( 0 % )
Total HSSI PMA TX Serializers 0 / 9 ( 0 % )
Total PLLs 2 / 15 ( 13 % )
Total DLLs 0 / 4 ( 0 % )

Hunta
13.12.2020, 01:04
Ещё шаг вперёд. Уже учитывается длина и защита страниц. Насколько всё правильно - пока не знаю, но прерывания по защите страниц уже видел. Не весь функционал по обратной инфе о прерывании операций реализован, но двигаюсь :)

И, похоже, возникла какая то проблема в модуле ПДП (длительные задержки сигналов?), поэтому пока всё перестало грузиться.

Самописный тест прошивается прямо в ОЗУ синтез-прошивки, так что какие никакие тесты есть.

Hunta
13.12.2020, 19:59
Ещё шаг. Проверил отработку прерывания по недоступной странице, по длине страницы и по записи в только читаемую страницу. Отрабатывается, в регистре сообщает.

Борьба с ПДП...

Hunta
15.12.2020, 12:10
Чёт я подустал.. Решил малость отвлечься.

Сделал так называемый display register - который выводит записанное в него значение на линейку светодиодов. К сожалению, на моей DE10 нет линейки из 16-ти светодиодов, а есть 6 семисегментных цифровых индикаторов. Почесав, как обычно, почесуемое, я придумал, как можно сделать на них :) Как ни странно, заработало с первой попытки - есть только один маленький косяк - на один из битов зажигаются два светодиода.

Так что теперь у меня PDP2011 показывает не только содержимое PC, но и - если была выполнена команда WAIT - покажет содержимое Display Register.

Когда получится загрузить RSX - посмотрим, она вроде как отображает бегущие огоньки при простое :)

Тестовая программа (проверка работы прерывания от часов и клавиатуры) теперь не только рисует плюсы и введённое с клавиатуры на экран, но и рисует бегущую строку из светодиодов. Чуть позже запищу и выложу видео :)

- - - Добавлено - - -

Ошибку поправил, сделал немного другой вариант показа простоя :)

Hunta
15.12.2020, 19:59
Видео по качеству так себе - но представление даст. Потом, может, пересниму :)

Ссылка Display Register (http://www.kpxx.ru/PDPonFPGA/Hard/DisplayRegisterInAction/DisplayRegisterInAction.mp4)

Hunta
17.12.2020, 18:04
Ещё шаг вперёд



@S
HX 2.2 RT-11 Cold boot..

HX DSK/TTY multiplexer v3.3 2016

RT-11SB (S) V05.07

.R MSCPCK

.SHO CONF

RT-11SB (S) V05.07
Booted from HX0:RT11SB

USR is set SWAP
EXIT is set SWAP
KMON is set NOIND
MODE is set NOSJ
TT is set NOQUIET
ERROR is set ERROR
SL is set OFF
EDIT is set KED
FORTRAN is set FORTRA
KMON nesting depth is 3
Global .SCCA flag is disabled

CLI is set DCL, CCL, UCL, NO UCF

PDP 11/34 Processor
128KB of memory
Extended Instruction Set (EIS)
Memory Management Unit
50 Hertz System Clock

Memory parity support
SB timer support
Global .SCCA support
FPU support
Extended unit support


.


XM и VM пока не хотят...

- - - Добавлено - - -

А, да, забыл написать - параллельно идёт ещё война с ПДП. Как то неустойчиво работает - то да, то нет. Видимо, где то ещё не стыковка по снятию сигналов при записи в память. Пробую варианты.

Hunta
19.12.2020, 12:41
Ещё шаг



000042 000000 000000 000000
@DK1
DZQUD-E 21-JUL-76 RKDP - XXDP RK11 MONITOR 28K
RESTART ADDR:152522
BOOTED VIA UNIT#: 1
TO ABORT THE FOLLOWING HELP MESSAGE TYPE CTRL C (^C)

TYPE:
F<CR> TO SET CONSOLE FILL COUNT
D<CR> FOR DIRECTORY ON CONSOLE, OR
D/F<CR> FOR SHORT DIRECTORY ON CONSOLE, OR
D/L<CR> FOR DIRECTORY ON LINE PRINTER, OR
D/L/F<CR> FOR SHORT DIRECTORY ON LINE PRINTER,
R COPY<CR> TO RUN COPY PROGRAM,
R FILENAME<CR> TO RUN ANY OTHER PROGRAM.
L FILENAME<CR> TO LOAD A PROGRAM ONLY
S<CR> TO START THE PROGRAM JUST LOADED,
S ADDR<CR> TO START THE PROGRAM AT SPECIFIC ADDRESS
C FILENAME<CR> TO RUN A CHAIN,
C FILENAME/QV<CR> TO RUN A CHAIN IN QUICK VERIFY MODE.
REFER TO XXDP USER MANUAL MD-11-DZQXA FOR ADDITIONAL HELP.
.
000042 153400 152412 152556
@DK0
RT-11SB (S) V05.07
?KMON-F-File not found DK:STRTSB.COM

.SHO CONF

RT-11SB (S) V05.07
Booted from RK0:RT11SB

USR is set SWAP
EXIT is set SWAP
KMON is set NOIND
MODE is set NOSJ
TT is set NOQUIET
ERROR is set ERROR
SL is set OFF
EDIT is set KED
FORTRAN is set FORTRA
KMON nesting depth is 3
Global .SCCA flag is disabled

CLI is set DCL, CCL, UCL, NO UCF

PDP 11/34 Processor
128KB of memory
Extended Instruction Set (EIS)
Memory Management Unit
50 Hertz System Clock

Device I/O time-out support
SB timer support
Global .SCCA support
Extended unit support


.BOO RK3:

RT-11SB (S) V05.07
?KMON-F-File not found DK:STRTSB.COM

.COP/DEV/VER RK3: RK:
RK0:/Copy; Are you sure? Y

.


Вроде как сделал (ТТТ) работоспособным ПДП при наличии ДП.

XM по прежнему не работает, но теперь можно запускать тесты (XXDP), обнаружил, что есть проблема с выполнением команды MFPI. В принципе - вполне возможна, ибо она работает только когда есть ДП, а поскольку его до сих пор не было - никто и не проверял. Теперь будет посмотреть.

Пока тестирование идёт с прицелом на PDP-11/34, так что режим супервизора и ID не проверялись. Кроме того, сейчас ДП с поддержкой 22 бит и известно наличие ошибки, если сделать 18-ти битный режим ДП. Точнее - на прошлых проверках ошибка была, но с того времени сильно изменён набор и логика сигналов, так что сейчас - не знаю, есть она или нет. Будет проверяться позже, когда будет проходить тест от PDP-11/34 - Basic Instruction Test - там проверяются и инструкции работы через ДП - типа MFPI

kolk
19.12.2020, 14:01
К сожалению, на моей DE10 нет линейки из 16-ти светодиодов, а есть 6 семисегментных цифровых индикаторов. Почесав, как обычно, почесуемое, я придумал, как можно сделать на них :)

Я думаю, полезнее было бы все же использовать 7-сегментные индикаторы как восьмеричные ;)

Hunta
19.12.2020, 14:40
Я думаю, полезнее было бы все же использовать 7-сегментные индикаторы как восьмеричные
Когда они показывают числа - они показывают их именно как восьмеричные.
Но бегущие огни через восьмеричное представление - так себе выглядят ;)

- - - Добавлено - - -

Как пример - у меня сделан по-микро-шаговый режим работы - и на них я отлично вижу номера выполняющихся микрошагов - только что использовал для того, что бы понять, на каком микрошаге я накосячил :)

- - - Добавлено - - -

И ещё шаг :) Тест, который выловил ошибку в MFPI (и аналогичную в MTPI и, если бы они были, то в MFPD/MTPD), теперь проходит.
Смотрю тесты дальше


000042 000000 000000 000000
@DK1
DZQUD-E 21-JUL-76 RKDP - XXDP RK11 MONITOR 28K
RESTART ADDR:152522
BOOTED VIA UNIT#: 1
TO ABORT THE FOLLOWING HELP MESSAGE TYPE CTRL C (^C)

TYPE:
F<CR> TO SET CONSOLE FILL COUNT
D<CR> FOR DIRECTORY ON CONSOLE, OR
D/F<CR> FOR SHORT DIRECTORY ON CONSOLE, OR
D/L<CR> FOR DIRECTORY ON LINE PRINTER, OR
D/L/F<CR> FOR SHORT DIRECTORY ON LINE PRINTER,
R COPY<CR> TO RUN COPY PROGRAM,
R FILENAME<CR> TO RUN ANY OTHER PROGRAM.
L FILENAME<CR> TO LOAD A PROGRAM ONLY
S<CR> TO START THE PROGRAM JUST LOADED,
S ADDR<CR> TO START THE PROGRAM AT SPECIFIC ADDRESS
C FILENAME<CR> TO RUN A CHAIN,
C FILENAME/QV<CR> TO RUN A CHAIN IN QUICK VERIFY MODE.
REFER TO XXDP USER MANUAL MD-11-DZQXA FOR ADDITIONAL HELP.
.R FKAA??

END OF DFKAA-B
END OF DFKAA-B
END OF DFKAA-B
END OF DFKAA-B
END OF DFKAA-B
END OF DFKAA-B
END OF DFKAA-B
000042 026002 000500 000000
@


- - - Добавлено - - -

FKAB?? - сбой, FKAC проходит. Смотрю, что в FKAB..

- - - Добавлено - - -

Хм. Проблема выглядит посложней и связана с обработкой прерываний... А может и нет - потому как в прошлый раз (без ДП) этот тест проходил...

Кстати, RT11XM по прежнему не грузится, но - уже выдаёт информацию о том, какой монитор загружается.

Hunta
19.12.2020, 20:13
Встраиваю куски теста FKAA прямо в прошивку FPGA - тесты можно будет запускать сразу после прошивки, без загрузки XXDP :)

- - - Добавлено - - -

И ещё шаг :)



000042 002000 157316 160000
@L 10000
@D 12706
@D 10000
....
@D 4715
@D 4715
@D 5007
@L 10000
@S
HX 2.2 RT-11 Cold boot..

HX DSK/TTY multiplexer v3.3 2016

RT-11SB (S) V05.07

.R MSCPCK

.BOO RT11XM

HX DSK/TTY multiplexer v3.3 2016

RT-11XM (S) V05.07

.TYPE V5USER.TXT

RT-11 V5.7

Installation of RT-11 Version 5.7 is complete and you are now running
RT-11 from your system volume.

.......

You should read the file V5NOTE.TXT, which you can TYPE or PRINT. Also,
read the Introduction to RT-11, and the Installation Guide which
contain much of the information you need to use RT-11 Version 5.7.


.R MSCPCK

.SHO ALL

RT-11XM (S) V05.07
Booted from HX0:RT11XM

USR is set NOSWAP
EXIT is set SWAP
KMON is set NOIND
RUN is set NOVBGEXE
MODE is set NOSJ
TT is set NOQUIET
ERROR is set ERROR
SL is set OFF
EDIT is set KEX
FORTRAN is set FORTRA
KMON nesting depth is 3
Global .SCCA flag is disabled

CLI is set DCL, CCL, UCL, NO UCF

PDP 11/34 Processor
128KB of memory
Extended Instruction Set (EIS)
Memory Management Unit
50 Hertz System Clock

Memory parity support
Global .SCCA support
FPU support
Extended unit support
UNIBUS mapping unavailable

Device Status CSR Vector(s)
------ ------ --- ---------
RK Installed 177400 220
DL Not installed 174400 160
DU Not installed 172150 154
HX Resident 177560 000
ZA Not installed 161014 350
ZB Not installed 161054 354
ZC Not installed 161114 360
ZD Not installed 161154 364
ZE Not installed 161214 370
ZF Not installed 161254 374
WQ Not installed 177134 204
WS Not installed 177134 204
LD Installed 000000 000
VM Not installed 177572 000
MU Not installed 174500 260
NL Installed 000000 000
SL Installed 000000 000
NQ Not installed 174440 120

TT (Resident)
HX (Resident)
HX0 = DK , SY
MQ (Resident)
LD
SL
RK
NL
21 free slots

Job Name Console Level State Low High Impure
--- ---- ------- ----- ----- --- ---- ------
0 RESORC 0 0 Run 000000 104076 120510

No multi-terminal support

------- Extended Memory --------
Address Module Words Type
------- ------ ----- ----
17760000 IOPAGE 4096. PRM HDW BYP
00400000 MEMTOP
00173600 ...... 33856.
00161200 SL 2688. PVT
00160000 MCA 320. PRM
00000000 KERNEL 28672. PRM HDW

------ Low Memory -------
Address Module Words
------- ------ -----
156170 HX 452.
116142 RMON 8203.
104100 USR 2577.
001000 ..BG.. 17184.

No LD units mounted



.SET SL ON

.SHO MEM

------- Extended Memory --------
Address Module Words Type
------- ------ ----- ----
17760000 IOPAGE 4096. PRM HDW BYP
00400000 MEMTOP
00173600 ...... 33856.
00161200 SL 2688. PVT
00160000 MCA 320. PRM
00000000 KERNEL 28672. PRM HDW

------ Low Memory -------
Address Module Words
------- ------ -----
156170 HX 452.
116142 RMON 8203.
113676 SL 594.
101632 USR 2578.
001000 ..BG.. 16589.


.


Но непосредственно с RK2011 XM пока грузиться не хочет. И попытка запустить VRUN MACRO TEST=TEST тоже окончилась остановом. Так же как и попытки использовать VM:

Работаю дальше...

- - - Добавлено - - -

RT11XM и запись на RK - пока не дружат :)

- - - Добавлено - - -

А фот хрен :D Загрузка XM монитора с RK11 и запись под ним на RK11 - это не мой косяк :) Это как то связано с драйвером RK, ибо:



000042 000000 133524 000170
@DK7
RT-11SB (S) V05.07
?KMON-F-File not found DK:STRTSB.COM

.BOO RT11XM

RT-11XM (S) V05.07

.RUN SY:TD3E
?KMON-F-File not found SY:TD3E.SAV

.BOO RT11XM

RT-11XM (S) V05.07

.RUN SY:TD3E
?KMON-F-File not found SY:TD3E.SAV

.DIR RK*.SYS

RK .SYS 3 20-Mar-2020 RKX .SYS 3 20-Mar-2020
2 Files, 6 Blocks
832 Free blocks

.COP/DEV/VER RK3: RK:
RK0:/Copy; Are you sure? Y

.SHO CONF

RT-11XM (S) V05.07
Booted from RK7:RT11XM

USR is set NOSWAP
EXIT is set SWAP
KMON is set NOIND
RUN is set NOVBGEXE
MODE is set NOSJ
TT is set NOQUIET
ERROR is set ERROR
SL is set OFF
EDIT is set KEX
FORTRAN is set FORTRA
KMON nesting depth is 3
Global .SCCA flag is disabled

CLI is set DCL, CCL, UCL, NO UCF

PDP 11/34 Processor
128KB of memory
Extended Instruction Set (EIS)
Memory Management Unit
50 Hertz System Clock

Device I/O time-out support
Global .SCCA support
Extended unit support
UNIBUS mapping unavailable


.SHO MEM

------- Extended Memory --------
Address Module Words Type
------- ------ ----- ----
17760000 IOPAGE 4096. PRM HDW BYP
00400000 MEMTOP
00173600 ...... 33856.
00161200 SL 2688. PVT
00160000 MCA 320. PRM
00000000 KERNEL 28672. PRM HDW

------ Low Memory -------
Address Module Words
------- ------ -----
157274 RK 162.
120054 RMON 8008.
106012 USR 2577.
001000 ..BG.. 17669.


.COP/BOO RT11XM SY:

.
000042 123012 157240 122206
rk
@DK7
RT-11XM (S) V05.07

.RUN SY:TD3E
?KMON-F-File not found SY:TD3E.SAV

.


- - - Добавлено - - -

Всё оказалось проще. Битые файлы мониторов XB и XM :) Когда воевал с ДП, а потом и с ПДП - вполне могло при копировании дать ошибки..

Теперь грузятся все 4 - SB, FB, XB, XM :)

- - - Добавлено - - -

Ещё один тест - SYSGEN, теперь под XM монитором - прошёл вполне успешно :)

Время генерации двух мониторов (SB и FB) под SB монитором - 2:14
Время генерации двух мониторов (SB и FB) под XM монитором - 8:41

Вот что значит - больший объём доступной памяти :)

SPEED3 на SB:



.RUN HX7:SPEED3

Тест быстродействия (кэш, если он есть, выключен)

R1 := M 8 319 880 оп./сек
R1 := M0 8 319 880 оп./сек
R1 := M1 8 319 880 оп./сек
R1+R0 classic 14 263 348 оп./сек
R1+R0 classic 14 263 348 оп./сек
R0(23456.)+R0(12345.) empty 5 545 962 оп./сек
R1(23456.)+R0(12345.) 3 993 273 оп./сек -> 14 263 345 оп./сек
R1+@R0 classic 11 094 426 оп./сек
R1(23456.)+@R0(M-12345.) empty 5 545 962 оп./сек
R1(23456.)+@R0(M-12345.) 3 697 587 оп./сек -> 11 094 435 оп./сек
R0*R0 classic 8 321 286 оп./сек
11.*12. empty 5 545 962 оп./сек
11.*12. 3 328 362 оп./сек -> 8 323 849 оп./сек
R2/R0 classic 3 566 609 оп./сек
R2-R3(34567.)/R1(321.) empty 4 159 999 оп./сек
R2-R3(34567.)/R1(321.) 1 920 513 оп./сек -> 3 567 484 оп./сек
MOV 8 word 1 empty 3 701 935 оп./сек
MOV 8 word 1 557 895 оп./сек -> 656 890 оп./сек
MOV 8 word 2 empty 3 697 308 оп./сек
MOV 8 word 2 628 283 оп./сек -> 756 903 оп./сек
#4+R0(2000) empty 11 105 808 оп./сек
#4+R0(2000) 5 545 962 оп./сек -> 11 078 074 оп./сек
CMP (R0)+,(R0)+ empty 11 091 925 оп./сек
CMP (R0)+,(R0)+ 4 341 127 оп./сек -> 7 132 705 оп./сек
#2+R0(2000) empty 11 091 925 оп./сек
#2+R0(2000) 5 545 962 оп./сек -> 11 091 923 оп./сек
INC R0 INC R0 empty 11 091 925 оп./сек
INC R0 INC R0 4 753 988 оп./сек -> 8 319 880 оп./сек
TST (R0)+ empty 11 091 925 оп./сек
TST (R0)+ 5 254 755 оп./сек -> 9 985 206 оп./сек


SPEED3 на XM:



.RUN HX7:SPEED3

Тест быстродействия (кэш, если он есть, выключен)

R1 := M 8 318 784 оп./сек
R1 := M0 8 318 784 оп./сек
R1 := M1 8 318 784 оп./сек
R1+R0 classic 14 261 734 оп./сек
R1+R0 classic 14 261 734 оп./сек
R0(23456.)+R0(12345.) empty 5 544 990 оп./сек
R1(23456.)+R0(12345.) 3 992 642 оп./сек -> 14 261 724 оп./сек
R1+@R0 classic 10 624 329 оп./сек
R1(23456.)+@R0(M-12345.) empty 5 544 990 оп./сек
R1(23456.)+@R0(M-12345.) 3 697 045 оп./сек -> 11 093 445 оп./сек
R0*R0 classic 8 320 737 оп./сек
11.*12. empty 5 544 990 оп./сек
11.*12. 3 327 513 оп./сек -> 8 320 729 оп./сек
R2/R0 classic 3 566 509 оп./сек
R2-R3(34567.)/R1(321.) empty 4 158 905 оп./сек
R2-R3(34567.)/R1(321.) 1 919 996 оп./сек -> 3 566 505 оп./сек
MOV 8 word 1 empty 3 701 286 оп./сек
MOV 8 word 1 557 875 оп./сек -> 656 883 оп./сек
MOV 8 word 2 empty 3 696 659 оп./сек
MOV 8 word 2 628 027 оп./сек -> 756 559 оп./сек
#4+R0(2000) empty 11 103 860 оп./сек
#4+R0(2000) 5 544 990 оп./сек -> 11 076 134 оп./сек
CMP (R0)+,(R0)+ empty 11 089 980 оп./сек
CMP (R0)+,(R0)+ 4 340 679 оп./сек -> 7 132 300 оп./сек
#2+R0(2000) empty 11 089 980 оп./сек
#2+R0(2000) 5 544 990 оп./сек -> 11 089 980 оп./сек
INC R0 INC R0 empty 11 089 980 оп./сек
INC R0 INC R0 4 753 274 оп./сек -> 8 318 787 оп./сек
TST (R0)+ empty 11 089 980 оп./сек
TST (R0)+ 5 254 099 оп./сек -> 9 984 414 оп./сек
.

Hunta
20.12.2020, 01:37
Добавил последние два бита в PDR (доступ к странице на запись, обращение к страницы с отслеживаемым видом доступа - так называемый Trapped).
Начались некоторые проблемы при выводе на экран (я такое раньше наблюдал, когда на шине выплывали лишние биты или наоборот - биты терялись).
Попробую ещё одно решение и спать. Не получится - буду с утра думать :)

Из не добавленного остались только UMR. В принципе, модуль UMR есть и хочется его как внешний модуль прикрутить - без встраивания в ДП, но... посмотрим, насколько просто это получится. Ещё надо и 18-ти битную шину для устройств с ПДП придумать как прикрутить к модулю корзины...

RK11 пока работает по принципу - пишем только в пределах 248 кб. Пока хватает. Но, поскольку ДП уже задышал - начинает поднимать голову модуль SDRAM :) А так будет несколько больше памяти, чем 248 кб :)

- - - Добавлено - - -

Надо прошерстить модуль ДП - всё ли в нем (кроме UMR) реализовано.
Кроме того, автор PDP2011 в более новых релизах что то добавил для F11 - надо глянуть и тоже добавить.

- - - Добавлено - - -

Не получилось.. Надо больше думать... И спать :)

Hunta
22.12.2020, 13:46
Бит W в PDR-ах вроде заработал.
XXDP, RT11SB и RT11XM грузятся, SYSGEN проходит

Хотя по прежнему (ещё не занимался) не работают VM: и VRUN

И перестал работать ZQMC... тоже надо глянуть - чего там...
И обнаружились другие не соответствия тесту FKAB.

В содержимое ОЗУ после прошивки начал добавлять тесты из FKAB (там проверяются, как работают прерывания от ДП)

- - - Добавлено - - -

Зараза... обнаружил ещё одно несоответствие оригиналу в поведении бита W. Поправил. Но пока воюю с другим расхождением (не понятна пока причина), проверять буду вместе

Hunta
22.12.2020, 19:23
Недочёт бита W поправил. С ошибкой продолжаю воевать. Забавный глюк загрузчика (ов) из ПЗУ от автора - он не делает reset перед началом загрузки первичного загрузчика, из за чего ничего не грузится, когда работает ДП (надо смотреть, в чём проблема). Стоит сделать сброс, как всё нормализуется (ДП выключается). Учитывая, что сейчас постоянно играюсь с ДП (блин, все адреса уже выучил наизусть) - уже много много раз налетал :)

- - - Добавлено - - -

Добрался до тестов ДП от PDP-11/34. С ходу запускать не получится - они думают, ДП 18-ти разрядный, а у меня сейчас 22-ух, а 18-ти разрядный вариант с ошибкой.. Придётся всё отложить и чинить эту ошибку..

- - - Добавлено - - -

Уф.. нашёл, где накосячил с 18-ти битным ДП. Посмотрим, что будет после синтеза :)

Hunta
24.12.2020, 19:38
Ааааа, круть :):)



000042 000476 000600 000404
@DK1
DZQUD-E 21-JUL-76 RKDP - XXDP RK11 MONITOR 28K
RESTART ADDR:152522
BOOTED VIA UNIT#: 1
TO ABORT THE FOLLOWING HELP MESSAGE TYPE CTRL C (^C)

TYPE:
F<CR> TO SET CONSOLE FILL COUNT
D<CR> FOR DIRECTORY ON CONSOLE, OR
D/F<CR> FOR SHORT DIRECTORY ON CONSOLE, OR
D/L<CR> FOR DIRECTORY ON LINE PRINTER, OR
D/L/F<CR> FOR SHORT DIRECTORY ON LINE PRINTER,
R COPY<CR> TO RUN COPY PROGRAM,
R FILENAME<CR> TO RUN ANY OTHER PROGRAM.
L FILENAME<CR> TO LOAD A PROGRAM ONLY
S<CR> TO START THE PROGRAM JUST LOADED,
S ADDR<CR> TO START THE PROGRAM AT SPECIFIC ADDRESS
C FILENAME<CR> TO RUN A CHAIN,
C FILENAME/QV<CR> TO RUN A CHAIN IN QUICK VERIFY MODE.
REFER TO XXDP USER MANUAL MD-11-DZQXA FOR ADDITIONAL HELP.
.R ZQMC??

MAINDEC-11-DZQMC-B

KT11 (MEMORY MANAGEMENT) AVAILABLE
MEMORY MAP:
FROM 000000 TO 377777

NO PARITY REGISTERS FOUND
PROGRAM RELOCATED TO 340000##
PROGRAM RELOCATED TO 000000##

END PASS # 1##
PROGRAM RELOCATED TO 340000##

18-ти битный режим заработал :) Даже программа тестирования памяти его заюзала (до этого висла)

- - - Добавлено - - -

Хм.. FKTH говорит - ошибочка в maintenance mode...

Hunta
25.12.2020, 15:00
У автора PDP2011 - ДП был построен сильно асинхронным. С одной стороны - хорошо - более быстрым получается, с другой стороны - задержки прохождения сигналов (особенно адреса) не предсказуемы и легко получить синтез, где они оказываются великоватыми. Ну, собственно, я на это и налетел. Попытка оптимизировать описание до какого то момента была успешной, но, видимо, всё. Так что слегка переделал модель ДП на более синхронную. Пока добился того, что то, что уже работало - по прежнему работает. Начинаю двигаться дальше.

- - - Добавлено - - -

Хотя нет - определённое движение вперёд всё таки есть - если раньше тест FKTH (тест ДП для PDP-11/34) в какой то момент (достаточно быстро) уходил в себя-вернусь не скоро, то теперь он радостно шлёпает ошибки и не менее радостно бегает по циклу, на каждом цикле не менее радостно сообщает о 10-ти ошибках :) Уже лучше :) Бум поправлять :)

Hunta
27.12.2020, 15:07
Хроники битвы за ДП :)



000042 000000 000000 000000
@DK0
RT-11SB (S) V05.07
?KMON-F-File not found DK:STRTSB.COM

.INI VM:
VM0:/Initialize; Are you sure? Y

.DIR VM:


0 Files, 0 Blocks
136 Free blocks

.COP/VER RT11SB.SYS VM:
Files copied:
DK:RT11SB.SYS to VM:RT11SB.SYS

.


Тест ДП пока ещё не проходит – осталось две ошибки – запись бита W и фиксация регистра SR2.
VRUN тоже пока не работает… Может из за того, что памяти мало?.. Попробую увеличить..

- - - Добавлено - - -

Малость дополнил:



.DIR VM:

SWAP .SYS 28 31-Oct-1998 RT11SB.SYS 99 09-Jan-2020
VM .SYS 3 10-Jan-2020 RK .SYS 3 20-Mar-2020
4 Files, 133 Blocks
3 Free blocks

.BOO VM:RT11SB

RT-11SB (S) V05.07
?KMON-F-File not found DK:STRTSB.COM

.


- - - Добавлено - - -

Ну, добавить памяти было проще всего, но на VRUN это не сказалось...



.sho conf

RT-11XM (S) V05.07
Booted from RK7:RT11XM

USR is set NOSWAP
EXIT is set SWAP
KMON is set NOIND
RUN is set NOVBGEXE
MODE is set NOSJ
TT is set NOQUIET
ERROR is set ERROR
SL is set OFF
EDIT is set KEX
FORTRAN is set FORTRA
KMON nesting depth is 3
Global .SCCA flag is disabled

CLI is set DCL, CCL, UCL, NO UCF

PDP 11/34 Processor
248KB of memory
Extended Instruction Set (EIS)
Memory Management Unit
50 Hertz System Clock

Device I/O time-out support
Global .SCCA support
Extended unit support
UNIBUS mapping unavailable


.

Hunta
11.01.2021, 09:39
Уф...


000042 000000 000000 000000
@DK1
DZQUD-E 21-JUL-76 RKDP - XXDP RK11 MONITOR 28K
RESTART ADDR:152522
BOOTED VIA UNIT#: 1
TO ABORT THE FOLLOWING HELP MESSAGE TYPE CTRL C (^C)

TYPE:
F<CR> TO SET CONSOLE FILL COUNT
D<CR> FOR DIRECTORY ON CONSOLE, OR
D/F<CR> FOR SHORT DIRECTORY ON CONSOLE, OR
D/L<CR> FOR DIRECTORY ON LINE PRINTER, OR
D/L/F<CR> FOR SHORT DIRECTORY ON LINE PRINTER,
R COPY<CR> TO RUN COPY PROGRAM,
R FILENAME<CR> TO RUN ANY OTHER PROGRAM.
L FILENAME<CR> TO LOAD A PROGRAM ONLY
S<CR> TO START THE PROGRAM JUST LOADED,
S ADDR<CR> TO START THE PROGRAM AT SPECIFIC ADDRESS
C FILENAME<CR> TO RUN A CHAIN,
C FILENAME/QV<CR> TO RUN A CHAIN IN QUICK VERIFY MODE.
REFER TO XXDP USER MANUAL MD-11-DZQXA FOR ADDITIONAL HELP.
.R FKTH??

MD-11-DFKTH-A 11/34 MEMORY MGMT. DIAG.

END PASS # 1 TOTAL ERRORS SINCE LAST REPORT 0

END PASS # 2 TOTAL ERRORS SINCE LAST REPORT 0

END PASS # 3 TOTAL ERRORS SINCE LAST REPORT 0

END PASS # 4 TOTAL ERRORS SINCE LAST REPORT 0

END PASS # 5 TOTAL ERRORS SINCE LAST REPORT 0

END PASS # 6 TOTAL ERRORS SINCE LAST REPORT 0

END PASS # 7 TOTAL ERRORS SINCE LAST REPORT 0

END PASS # 8 TOTAL ERRORS SINCE LAST REPORT 0

END PASS # 9 TOTAL ERRORS SINCE LAST REPORT 0

END PASS # 10 TOTAL ERRORS SINCE LAST REPORT 0

000042 000416 001100 177620
@

К сожалению, в процессе борьбы за прохождение теста ДП в варианте PDP-11/34 потерялась работа VM: :(
Бум выяснять, где :)

Hunta
11.01.2021, 17:00
А, да, забыл написать - слегка переделал внутреннюю шину, поменял блок в/в в процессоре (теперь стал ближе к авторскому, но использует сигнал готовности) и большую часть модулей сделал более синхронными - забибикался воевать с асинхронностью. Оно, конечно, быстрее (падение скорострельности в три раза), но его худшая предсказуемость на этапе поиска ошибок... Потом подумаю над ускорением - в принципе, где клоки теряются - знаю.

- - - Добавлено - - -

И нашлась ещё одна ошибка - запись на RK не работает - последствие переделки внутренней шины - вот только сейчас на это налетел - до этого воевал с ДП и запись на диск не проверил после переделки...

Hunta
11.01.2021, 21:24
Работу RK2011 вроде восстановил - ошибка вылезала из за асинхронности работы блок ПДП. Тест SYSGEN гоняется уже где то полчаса (чтение-запись RK) - пока всё норм. Дальше - восстановление работы VM. Потому - добавление UMR.

Hunta
12.01.2021, 20:42
Упрямство и труд... или вместо тысячи слов :)


000042 000000 000000 000000
@DK7
RT-11XM (S) V05.07

.RUN SY:TD3E
?KMON-F-File not found SY:TD3E.SAV

.BOO RT11SB

RT-11SB (S) V05.07
?KMON-F-File not found DK:STRTSB.COM

.INI VM:
VM0:/Initialize; Are you sure? Y

.DIR VM:


0 Files, 0 Blocks
376 Free blocks

.COP *.*/SYS/VER/Q VM:
Files copied:
DK:SWAP.SYS to VM:SWAP.SYS ? Y
DK:RT11SB.SYS to VM:RT11SB.SYS ? Y
DK:VM.SYS to VM:VM.SYS ? Y
DK:PIP.SAV to VM:PIP.SAV ? Y
DK:DUP.SAV to VM:DUP.SAV ? Y
DK:RESORC.SAV to VM:RESORC.SAV ? Y
DK:RK.SYS to VM:RK.SYS ? Y
DK:DIR.SAV to VM:DIR.SAV ? Y
DK:HX.SYS to VM:HX.SYS ? Y

.COP/BOO VM:RT11SB VM:

.BOO VM:/FOR

RT-11SB (S) V05.07
?KMON-F-File not found DK:STRTSB.COM

.SHO CONF

RT-11SB (S) V05.07
Booted from VM0:RT11SB

USR is set SWAP
EXIT is set SWAP
KMON is set NOIND
MODE is set NOSJ
TT is set NOQUIET
ERROR is set ERROR
SL is set OFF
EDIT is set KED
FORTRAN is set FORTRA
KMON nesting depth is 3
Global .SCCA flag is disabled

CLI is set DCL, CCL, UCL, NO UCF

PDP 11/34 Processor
248KB of memory
Extended Instruction Set (EIS)
Memory Management Unit
50 Hertz System Clock

Device I/O time-out support
SB timer support
Global .SCCA support
Extended unit support


.BOO RK7:RT11XM

RT-11XM (S) V05.07

.RUN SY:TD3E
?KMON-F-File not found SY:TD3E.SAV

.VRUN MACRO
*
MACRO V05.06
*^C

.BOO/FOR RK1:

DZQUD-E 21-JUL-76 RKDP - XXDP RK11 MONITOR 28K
RESTART ADDR:152522
BOOTED VIA UNIT#: 1
TO ABORT THE FOLLOWING HELP MESSAGE TYPE CTRL C (^C)

TYPE:
F<CR> TO SET CONSOLE FILL COUNT
D<CR> FOR DIRECTORY ON CONSOLE, OR
D/F<CR> FOR SHORT DIRECTORY ON CONSOLE, OR
D/L<CR> FOR DIRECTORY ON LINE PRINTER, OR
D/L/F<CR> FOR SHORT DIRECTORY ON LINE PRINTER,
R COPY<CR> TO RUN COPY PROGRAM,
R FILENAME<CR> TO RUN ANY OTHER PROGRAM.
L FILENAME<CR> TO LOAD A PROGRAM ONLY
S<CR> TO START THE PROGRAM JUST LOADED,
S ADDR<CR> TO START THE PROGRAM AT SPECIFIC ADDRESS
C FILENAME<CR> TO RUN A CHAIN,
C FILENAME/QV<CR> TO RUN A CHAIN IN QUICK VERIFY MODE.
REFER TO XXDP USER MANUAL MD-11-DZQXA FOR ADDITIONAL HELP.
.R FKAA??

END OF DFKAA-B
END OF DFKAA-B
END OF DFKAA-B
000042 025762 000500 000000
@DK1
DZQUD-E 21-JUL-76 RKDP - XXDP RK11 MONITOR 28K
RESTART ADDR:152522
BOOTED VIA UNIT#: 1
TO ABORT THE FOLLOWING HELP MESSAGE TYPE CTRL C (^C)

TYPE:
F<CR> TO SET CONSOLE FILL COUNT
D<CR> FOR DIRECTORY ON CONSOLE, OR
D/F<CR> FOR SHORT DIRECTORY ON CONSOLE, OR
D/L<CR> FOR DIRECTORY ON LINE PRINTER, OR
D/L/F<CR> FOR SHORT DIRECTORY ON LINE PRINTER,
R COPY<CR> TO RUN COPY PROGRAM,
R FILENAME<CR> TO RUN ANY OTHER PROGRAM.
L FILENAME<CR> TO LOAD A PROGRAM ONLY
S<CR> TO START THE PROGRAM JUST LOADED,
S ADDR<CR> TO START THE PROGRAM AT SPECIFIC ADDRESS
C FILENAME<CR> TO RUN A CHAIN,
C FILENAME/QV<CR> TO RUN A CHAIN IN QUICK VERIFY MODE.
REFER TO XXDP USER MANUAL MD-11-DZQXA FOR ADDITIONAL HELP.
.R FKAC??

END PASS##
END PASS##
END PASS##
END PASS##
END PASS##
END PASS##
000042 000020 000600 000404
rk
@1D
@KD
@D1
@DK1
DZQUD-E 21-JUL-76 RKDP - XXDP RK11 MONITOR 28K
RESTART ADDR:152522
BOOTED VIA UNIT#: 1
TO ABORT THE FOLLOWING HELP MESSAGE TYPE CTRL C (^C)

TYPE:
F<CR> TO SET CONSOLE FILL COUNT
D<CR> FOR DIRECTORY ON CONSOLE, OR
D/F<CR> FOR SHORT DIRECTORY ON CONSOLE, OR
D/L<CR> FOR DIRECTORY ON LINE PRINTER, OR
D/L/F<CR> FOR SHORT DIRECTORY ON LINE PRINTER,
R COPY<CR> TO RUN COPY PROGRAM,
R FILENAME<CR> TO RUN ANY OTHER PROGRAM.
L FILENAME<CR> TO LOAD A PROGRAM ONLY
S<CR> TO START THE PROGRAM JUST LOADED,
S ADDR<CR> TO START THE PROGRAM AT SPECIFIC ADDRESS
C FILENAME<CR> TO RUN A CHAIN,
C FILENAME/QV<CR> TO RUN A CHAIN IN QUICK VERIFY MODE.
REFER TO XXDP USER MANUAL MD-11-DZQXA FOR ADDITIONAL HELP.
.R FKTH??

MD-11-DFKTH-A 11/34 MEMORY MGMT. DIAG.

END PASS # 1 TOTAL ERRORS SINCE LAST REPORT 0

END PASS # 2 TOTAL ERRORS SINCE LAST REPORT 0

000042 177377 001076 077402
@DK1
DZQUD-E 21-JUL-76 RKDP - XXDP RK11 MONITOR 28K
RESTART ADDR:152522
BOOTED VIA UNIT#: 1
TO ABORT THE FOLLOWING HELP MESSAGE TYPE CTRL C (^C)

TYPE:
F<CR> TO SET CONSOLE FILL COUNT
D<CR> FOR DIRECTORY ON CONSOLE, OR
D/F<CR> FOR SHORT DIRECTORY ON CONSOLE, OR
D/L<CR> FOR DIRECTORY ON LINE PRINTER, OR
D/L/F<CR> FOR SHORT DIRECTORY ON LINE PRINTER,
R COPY<CR> TO RUN COPY PROGRAM,
R FILENAME<CR> TO RUN ANY OTHER PROGRAM.
L FILENAME<CR> TO LOAD A PROGRAM ONLY
S<CR> TO START THE PROGRAM JUST LOADED,
S ADDR<CR> TO START THE PROGRAM AT SPECIFIC ADDRESS
C FILENAME<CR> TO RUN A CHAIN,
C FILENAME/QV<CR> TO RUN A CHAIN IN QUICK VERIFY MODE.
REFER TO XXDP USER MANUAL MD-11-DZQXA FOR ADDITIONAL HELP.
.R XQMMQX R

.R ZQMC??

MAINDEC-11-DZQMC-B

KT11 (MEMORY MANAGEMENT) AVAILABLE
MEMORY MAP:
FROM 000000 TO 757777

NO PARITY REGISTERS FOUND
PROGRAM RELOCATED TO 720000##
PROGRAM RELOCATED TO 000000##

END PASS # 1##
PROGRAM RELOCATED TO 720000##
PROGRAM RELOCATED TO 000000##

END PASS # 2##
PROGRAM RELOCATED TO 720000##
PROGRAM RELOCATED TO 000000##

END PASS # 3##
PROGRAM RELOCATED TO 720000##
PROGRAM RELOCATED TO 000000##

END PASS # 4##
PROGRAM RELOCATED TO 720000##
000042 072771 001074 037777
@DK7
RT-11XM (S) V05.07

.RUN SY:TD3E
?KMON-F-File not found SY:TD3E.SAV

.VRUN MACRO
*^C

.SHO CONF

RT-11XM (S) V05.07
Booted from RK7:RT11XM

USR is set NOSWAP
EXIT is set SWAP
KMON is set NOIND
RUN is set NOVBGEXE
MODE is set NOSJ
TT is set NOQUIET
ERROR is set ERROR
SL is set OFF
EDIT is set KEX
FORTRAN is set FORTRA
KMON nesting depth is 3
Global .SCCA flag is disabled

CLI is set DCL, CCL, UCL, NO UCF

PDP 11/34 Processor
248KB of memory
Extended Instruction Set (EIS)
Memory Management Unit
50 Hertz System Clock

Device I/O time-out support
Global .SCCA support
Extended unit support
UNIBUS mapping unavailable


.


- - - Добавлено - - -

Зараза RSX пока сопротивляется...

Hunta
13.01.2021, 18:08
Поскольку ни нормального пульта ни встроенного ODT у меня ещё нет, единственный способ в случае RSX понять - что происходит - это карта памяти, листинг и XDT :) Даже если эта RSX - простая M :) Так что - вспомнил ГЛУБОКУЮ молодость и прогнал SYSGEN в RSX-11M :) На выходе - диск, где делался SYSGEN (карты памяти, листинги) и диск с загружаемой RSX-11M с RK11. На этот раз, в отличии от базовой системы, я получил не зависание не пойми где, а очень такой симпатичный (ибо не пришлось придумывать - как) вылет в отладчик XDT. Что, с наличием карты памяти и листингов, позволило за пару минут найти виноватого :)

Драйвер RK11.

Учитывая, что эмулируемый RK2011 у меня не доделан (там, по сути, только чтение и запись работают хоть как то) – вполне ожидаемо :)
Так что UMR пока откладывается в сторону и начинается допиливание RK11 :)


Кстати, не рассказал детектив с VM:


Итак.

В VM проблема была в том, что он настраивал маппинг страницы в/в - немного по разному для режима ядра (отображена вся страница) и режима пользователя (отображена только половина страницы).

После чего включал ДП и при этом сразу оказывался в режиме пользователя – из за настройки в PS.

И вот в этот момент ДО ВКЛЮЧЕНИЯ всё с доступом было нормально, А В МОМЕНТ ВКЛЮЧЕНИЯ (регистр SR0, адрес 177572) ТЕКУЩАЯ ОПЕРАЦИЯ с точки зрения ВКЛЮЧИВШЕГОСЯ ДП обращалась за пределами отображённой длины страницы.

И СРАЗУ после включения прилетало прерывание от ДП – типа ДП - слишком шустрый :) Шериф только очнулся - и сразу пристрелил врача с дефибрилятором :)

То есть – если в момент начала операции ДП выключен – он эту операцию должен пропускать как есть целиком и до момента её окончание не реагировать.

Последствия того, что у автора в ДП много асинхронного, а операции обмена по шине идут без ожидания с точки зрения процессора – он выставил сигналы и сразу – или прилетит сигнал NXM (non existing memory – на шине некому отвечать) или операцию можно завершать – для чтения данные доступны, для записи – устройство приняло данные. Автор весьма хитро сделал тактирование процессора от памяти.

В общем, когда я только начинал возиться с FPGA – в тот момент во все тонкости не вкурил, решил, что мне будет проще с сигналом подтверждения типа RPLY на QBus, в конце концов начал переделывать, но оказалось – много чего и много где надо переделывать :) Хотя схема стала работать гораздо устойчивее и самое главное – результат синтеза стал более предсказуемо быть запускаемым. То есть, если типа проц не стартовал – это мой косяк, а не результат того, что опять где то времянка поплыла из за общей асинхронности.

Кстати, этот инцидент примечателен ещё тем, что – тест ДП то эту ошибку в работе ДП не ловит :)

А драйвер VM - на раз два три :)

Hunta
16.01.2021, 11:16
Всем известны SB (в девичестве SJ) и XM мониторы :) В принципе - основные мониторы в RT.

Ну, если вы счастливый обладатель процессора с поддержкой ID и Supervisor, то неплохо заходит ZM монитор. Так же можно вполне успешно юзать младшие братья (X,Z)M монитора - XB и ZB.

Системные задания - это жалкая пародия на многозадачность (да да - RSX - наше всё в этом плане), но... есть, в принципе, сценарии, где может помочь и такая... хм... многозадачность, но SB, XB и ZB слегка полегче мониторов с её поддержкой, так что чаще всего используются они, а не их... более многоопытные варианты :)

Так о чём речь то. А речь об одной интересной возможности в XB-XM-ZB-ZM мониторах, которая позволяет, пусть и тоже - в определённых сценариях, уделать SB монитор :) И скорее всего - SJ монитор, который некоторые товарищи считают тру SJ монитором. А не его SB собрата. Типа SB - это просто кастрированный FB монитор. Ну, это их личное мнение, я обычно исхожу из задачи, возможности железа и возможности монитора.

Безусловно, эта возможность - не какое то изотерическое знание, и человек, часто листавший и часто листающий доки по RT, скорее всего о ней осведомлён, но, как показывает практике, когда долго не общался с RT (в целом) или XM семейством (в частности) - про неё легко забыть :) Даже у меня она (чаще всего сижу в RSX, ну а если вдруг в RT - то да, SB монитор)... хм... вылетела из головы :) Но вот возился с ДП - и подсознание пропихнуло таки инфу о ней на сознательный уровень :)

Я использую для проверки PDP2011 и того, чего я там накосячил, два основных инструмента - тесты (зашитые в ПЗУ автором, зашитые мной в ОЗУ, XXDP) и SYSGEN :) Последний вариант хорош комплексной проверкой, хотя, как показала практика - легко пропускает некоторые ошибки процессора. Впрочем, это же можно сказать и про саму RT. Тем не менее, для быстрой проверки - более менее. Вот его я и использую.

Демонстрация.

Сценарий 1. SYSGEN под SB



.IND S
.ini rk:/noq
.time
11:03:25
.$@sysgen.bld

.$@SYSGEN.MON

.ASSIGN RK5 SRC

.ASSIGN RK0 BIN

.ASSIGN RK0 MAP

.ASSIGN RK0 OBJ

.MACRO/OBJ:OBJ:KMSJ SRC:(SJ+SYSGEN.CND+EDTGBL+KMON+KMOVLY)

.MACRO/OBJ:OBJ:RMSJ SRC:(SJ+SYSGEN.CND+EDTGBL+USR+RMONSJ)

.MACRO/OBJ:OBJ:TBSJ SRC:(SJ+SYSGEN.CND+EDTGBL+SYSGEN.TBL)

.MACRO/OBJ:OBJ:BTSJ SRC:(SJ+SYSGEN.CND+EDTGBL+BSTRAP)

.LINK/EXE:BIN:RT11SJ.SYG/BOU:1000/PROMPT/MAP:MAP:RT11SJ OBJ:BTSJ
*OBJ:RMSJ,KMSJ,TBSJ//
Boundary section? OVLY0

.DELETE/NOQ OBJ:(BT,RM,KM,TB)SJ.OBJ

.MACRO/OBJ:OBJ:KMFB SRC:(FB+SYSGEN.CND+EDTGBL+KMON+KMOVLY)

.MACRO/OBJ:OBJ:RMFB SRC:(FB+SYSGEN.CND+EDTGBL+USR+RMONFB)

.MACRO/OBJ:OBJ:TBFB SRC:(FB+SYSGEN.CND+EDTGBL+SYSGEN.TBL)

.MACRO/OBJ:OBJ:BTFB SRC:(FB+SYSGEN.CND+EDTGBL+BSTRAP)

.LINK/EXE:BIN:RT11FB.SYG/BOU:1000/PROMPT/MAP:MAP:RT11FB OBJ:BTFB
*OBJ:RMFB,KMFB,TBFB//
Boundary section? OVLY0

.DELETE/NOQ OBJ:(BT,RM,TB,KM)FB.OBJ

.MACRO/OBJ:OBJ:KMXM SRC:(XM+SYSGEN.CND+EDTGBL+KMON+KMOVLY)

.MACRO/OBJ:OBJ:RMXM SRC:(XM+SYSGEN.CND+EDTGBL+USR+RMONFB)

.MACRO/OBJ:OBJ:SBXM SRC:(XM+SYSGEN.CND+EDTGBL+XMSUBS)

.MACRO/OBJ:OBJ:TBXM SRC:(XM+SYSGEN.CND+EDTGBL+SYSGEN.TBL)

.MACRO/OBJ:OBJ:BTXM SRC:(XM+SYSGEN.CND+EDTGBL+BSTRAP)

.LINK/EXE:BIN:RT11XM.SYG/BOU:1000/PROMPT/MAP:MAP:RT11XM OBJ:BTXM
*OBJ:RMXM,SBXM,KMXM,TBXM//
Boundary section? OVLY0

.DELETE/NOQ OBJ:(BT,RM,SB,KM,TB)XM.OBJ

.$@SYSGEN.DEV

.ASSIGN RK5 SRC

.ASSIGN RK0 BIN

.ASSIGN RK0 OBJ

.MACRO/OBJ:OBJ:TT SRC:(SYSGEN.CND+TT)

.LINK/EXE:BIN:TT.SYG OBJ:TT

.DELETE/NOQ OBJ:TT.OBJ

.MACRO/OBJ:OBJ:LD SRC:(SYSGEN.CND+LD)

.LINK/EXE:BIN:LD.SYG OBJ:LD

.DELETE/NOQ OBJ:LD.OBJ

.MACRO/OBJ:OBJ:LDX SRC:(XM+SYSGEN.CND+LD)

.LINK/EXE:BIN:LDX.SYG OBJ:LDX

.DELETE/NOQ OBJ:LDX.OBJ

.MACRO/OBJ:OBJ:VM SRC:(SYSGEN.CND+VM)

.LINK/EXE:BIN:VM.SYG OBJ:VM

.DELETE/NOQ OBJ:VM.OBJ

.MACRO/OBJ:OBJ:VMX SRC:(XM+SYSGEN.CND+VM)

.LINK/EXE:BIN:VMX.SYG OBJ:VMX

.DELETE/NOQ OBJ:VMX.OBJ

.MACRO/OBJ:OBJ:RK SRC:(SYSGEN.CND+RK)

.LINK/EXE:BIN:RK.SYG OBJ:RK

.DELETE/NOQ OBJ:RK.OBJ

.MACRO/OBJ:OBJ:RKX SRC:(XM+SYSGEN.CND+RK)

.LINK/EXE:BIN:RKX.SYG OBJ:RKX

.DELETE/NOQ OBJ:RKX.OBJ

.MACRO/OBJ:OBJ:NL SRC:(SYSGEN.CND+NL)

.LINK/EXE:BIN:NL.SYG OBJ:NL

.DELETE/NOQ OBJ:NL.OBJ

.MACRO/OBJ:OBJ:NLX SRC:(XM+SYSGEN.CND+NL)

.LINK/EXE:BIN:NLX.SYG OBJ:NLX

.DELETE/NOQ OBJ:NLX.OBJ
.time
11:12:27


Время генерации - c 11:03:25 по 11:12:27 или 00:09:02

Сценарий 1. SYSGEN под XM



.IND S
.ini rk:/noq
.time
11:13:46
.$@sysgen.bld

.$@SYSGEN.MON

.ASSIGN RK5 SRC

.ASSIGN RK0 BIN

.ASSIGN RK0 MAP

.ASSIGN RK0 OBJ

.MACRO/OBJ:OBJ:KMSJ SRC:(SJ+SYSGEN.CND+EDTGBL+KMON+KMOVLY)

.MACRO/OBJ:OBJ:RMSJ SRC:(SJ+SYSGEN.CND+EDTGBL+USR+RMONSJ)

.MACRO/OBJ:OBJ:TBSJ SRC:(SJ+SYSGEN.CND+EDTGBL+SYSGEN.TBL)

.MACRO/OBJ:OBJ:BTSJ SRC:(SJ+SYSGEN.CND+EDTGBL+BSTRAP)

.LINK/EXE:BIN:RT11SJ.SYG/BOU:1000/PROMPT/MAP:MAP:RT11SJ OBJ:BTSJ
*OBJ:RMSJ,KMSJ,TBSJ//
Boundary section? OVLY0

.DELETE/NOQ OBJ:(BT,RM,KM,TB)SJ.OBJ

.MACRO/OBJ:OBJ:KMFB SRC:(FB+SYSGEN.CND+EDTGBL+KMON+KMOVLY)

.MACRO/OBJ:OBJ:RMFB SRC:(FB+SYSGEN.CND+EDTGBL+USR+RMONFB)

.MACRO/OBJ:OBJ:TBFB SRC:(FB+SYSGEN.CND+EDTGBL+SYSGEN.TBL)

.MACRO/OBJ:OBJ:BTFB SRC:(FB+SYSGEN.CND+EDTGBL+BSTRAP)

.LINK/EXE:BIN:RT11FB.SYG/BOU:1000/PROMPT/MAP:MAP:RT11FB OBJ:BTFB
*OBJ:RMFB,KMFB,TBFB//
Boundary section? OVLY0

.DELETE/NOQ OBJ:(BT,RM,TB,KM)FB.OBJ

.MACRO/OBJ:OBJ:KMXM SRC:(XM+SYSGEN.CND+EDTGBL+KMON+KMOVLY)

.MACRO/OBJ:OBJ:RMXM SRC:(XM+SYSGEN.CND+EDTGBL+USR+RMONFB)

.MACRO/OBJ:OBJ:SBXM SRC:(XM+SYSGEN.CND+EDTGBL+XMSUBS)

.MACRO/OBJ:OBJ:TBXM SRC:(XM+SYSGEN.CND+EDTGBL+SYSGEN.TBL)

.MACRO/OBJ:OBJ:BTXM SRC:(XM+SYSGEN.CND+EDTGBL+BSTRAP)

.LINK/EXE:BIN:RT11XM.SYG/BOU:1000/PROMPT/MAP:MAP:RT11XM OBJ:BTXM
*OBJ:RMXM,SBXM,KMXM,TBXM//
Boundary section? OVLY0

.DELETE/NOQ OBJ:(BT,RM,SB,KM,TB)XM.OBJ

.$@SYSGEN.DEV

.ASSIGN RK5 SRC

.ASSIGN RK0 BIN

.ASSIGN RK0 OBJ

.MACRO/OBJ:OBJ:TT SRC:(SYSGEN.CND+TT)

.LINK/EXE:BIN:TT.SYG OBJ:TT

.DELETE/NOQ OBJ:TT.OBJ

.MACRO/OBJ:OBJ:LD SRC:(SYSGEN.CND+LD)

.LINK/EXE:BIN:LD.SYG OBJ:LD

.DELETE/NOQ OBJ:LD.OBJ

.MACRO/OBJ:OBJ:LDX SRC:(XM+SYSGEN.CND+LD)

.LINK/EXE:BIN:LDX.SYG OBJ:LDX

.DELETE/NOQ OBJ:LDX.OBJ

.MACRO/OBJ:OBJ:VM SRC:(SYSGEN.CND+VM)

.LINK/EXE:BIN:VM.SYG OBJ:VM

.DELETE/NOQ OBJ:VM.OBJ

.MACRO/OBJ:OBJ:VMX SRC:(XM+SYSGEN.CND+VM)

.LINK/EXE:BIN:VMX.SYG OBJ:VMX

.DELETE/NOQ OBJ:VMX.OBJ

.MACRO/OBJ:OBJ:RK SRC:(SYSGEN.CND+RK)

.LINK/EXE:BIN:RK.SYG OBJ:RK

.DELETE/NOQ OBJ:RK.OBJ

.MACRO/OBJ:OBJ:RKX SRC:(XM+SYSGEN.CND+RK)

.LINK/EXE:BIN:RKX.SYG OBJ:RKX

.DELETE/NOQ OBJ:RKX.OBJ

.MACRO/OBJ:OBJ:NL SRC:(SYSGEN.CND+NL)

.LINK/EXE:BIN:NL.SYG OBJ:NL

.DELETE/NOQ OBJ:NL.OBJ

.MACRO/OBJ:OBJ:NLX SRC:(XM+SYSGEN.CND+NL)

.LINK/EXE:BIN:NLX.SYG OBJ:NLX

.DELETE/NOQ OBJ:NLX.OBJ
.time
11:35:17


Время генерации - c 11:13:46 по 11:35:17 или 00:21:31

21-а минута против 9-ти. Почти в 2.5 раза лучше.. тьфу, то есть, хуже... то есть - смотря с чьей стороны посмотреть :) Ну, знающие товарищи быстро поймут (или просто знают) - почему??? А вот почему.

SB монитор:



.SHO MEM

Address Module Words
------- ------ -----
160000 IOPAGE 4096.
157326 RK 149.
135632 RMON 4510.
001000 ..BG.. 23757.


.


XM монитор



.SHO MEM

------- Extended Memory --------
Address Module Words Type
------- ------ ----- ----
17760000 IOPAGE 4096. PRM HDW BYP
00760000 MEMTOP
00173600 ...... 95296.
00161200 SL 2688. PVT
00160000 MCA 320. PRM
00000000 KERNEL 28672. PRM HDW

------ Low Memory -------
Address Module Words
------- ------ -----
157274 RK 162.
120054 RMON 8008.
106012 USR 2577.
001000 ..BG.. 17669.


.


Свободной памяти в SB мониторе (23757 слов) примерно в полтора раза больше, чем в XM монитора (17669 слов). Ну, на самом деле не совсем правда, так как для файловых операция периодически требуется USR, а она в SB транзитная, а в XM мониторе резидентная, но... Для компиляции исходников (а тексты RT - это серьёзный вызов программе MACRO) - результат налицо.

А теперь обещанная "эзотерика". Во первых - SYSGEN будет запущен на том же самом мониторе с тем же самым количеством доступной памяти:



.SHO MEM

------- Extended Memory --------
Address Module Words Type
------- ------ ----- ----
17760000 IOPAGE 4096. PRM HDW BYP
00760000 MEMTOP
00173600 ...... 95296.
00161200 SL 2688. PVT
00160000 MCA 320. PRM
00000000 KERNEL 28672. PRM HDW

------ Low Memory -------
Address Module Words
------- ------ -----
157274 RK 162.
120054 RMON 8008.
106012 USR 2577.
001000 ..BG.. 17669.


.


И будет запущен тот же самый SYSGEN:



.IND S
.ini rk:/noq
.time
11:46:02
.$@sysgen.bld

.$@SYSGEN.MON

.ASSIGN RK5 SRC

.ASSIGN RK0 BIN

.ASSIGN RK0 MAP

.ASSIGN RK0 OBJ

.MACRO/OBJ:OBJ:KMSJ SRC:(SJ+SYSGEN.CND+EDTGBL+KMON+KMOVLY)

.MACRO/OBJ:OBJ:RMSJ SRC:(SJ+SYSGEN.CND+EDTGBL+USR+RMONSJ)

.MACRO/OBJ:OBJ:TBSJ SRC:(SJ+SYSGEN.CND+EDTGBL+SYSGEN.TBL)

.MACRO/OBJ:OBJ:BTSJ SRC:(SJ+SYSGEN.CND+EDTGBL+BSTRAP)

.LINK/EXE:BIN:RT11SJ.SYG/BOU:1000/PROMPT/MAP:MAP:RT11SJ OBJ:BTSJ
*OBJ:RMSJ,KMSJ,TBSJ//
Boundary section? OVLY0

.DELETE/NOQ OBJ:(BT,RM,KM,TB)SJ.OBJ

.MACRO/OBJ:OBJ:KMFB SRC:(FB+SYSGEN.CND+EDTGBL+KMON+KMOVLY)

.MACRO/OBJ:OBJ:RMFB SRC:(FB+SYSGEN.CND+EDTGBL+USR+RMONFB)

.MACRO/OBJ:OBJ:TBFB SRC:(FB+SYSGEN.CND+EDTGBL+SYSGEN.TBL)

.MACRO/OBJ:OBJ:BTFB SRC:(FB+SYSGEN.CND+EDTGBL+BSTRAP)

.LINK/EXE:BIN:RT11FB.SYG/BOU:1000/PROMPT/MAP:MAP:RT11FB OBJ:BTFB
*OBJ:RMFB,KMFB,TBFB//
Boundary section? OVLY0

.DELETE/NOQ OBJ:(BT,RM,TB,KM)FB.OBJ

.MACRO/OBJ:OBJ:KMXM SRC:(XM+SYSGEN.CND+EDTGBL+KMON+KMOVLY)

.MACRO/OBJ:OBJ:RMXM SRC:(XM+SYSGEN.CND+EDTGBL+USR+RMONFB)

.MACRO/OBJ:OBJ:SBXM SRC:(XM+SYSGEN.CND+EDTGBL+XMSUBS)

.MACRO/OBJ:OBJ:TBXM SRC:(XM+SYSGEN.CND+EDTGBL+SYSGEN.TBL)

.MACRO/OBJ:OBJ:BTXM SRC:(XM+SYSGEN.CND+EDTGBL+BSTRAP)

.LINK/EXE:BIN:RT11XM.SYG/BOU:1000/PROMPT/MAP:MAP:RT11XM OBJ:BTXM
*OBJ:RMXM,SBXM,KMXM,TBXM//
Boundary section? OVLY0

.DELETE/NOQ OBJ:(BT,RM,SB,KM,TB)XM.OBJ

.$@SYSGEN.DEV

.ASSIGN RK5 SRC

.ASSIGN RK0 BIN

.ASSIGN RK0 OBJ

.MACRO/OBJ:OBJ:TT SRC:(SYSGEN.CND+TT)

.LINK/EXE:BIN:TT.SYG OBJ:TT

.DELETE/NOQ OBJ:TT.OBJ

.MACRO/OBJ:OBJ:LD SRC:(SYSGEN.CND+LD)

.LINK/EXE:BIN:LD.SYG OBJ:LD

.DELETE/NOQ OBJ:LD.OBJ

.MACRO/OBJ:OBJ:LDX SRC:(XM+SYSGEN.CND+LD)

.LINK/EXE:BIN:LDX.SYG OBJ:LDX

.DELETE/NOQ OBJ:LDX.OBJ

.MACRO/OBJ:OBJ:VM SRC:(SYSGEN.CND+VM)

.LINK/EXE:BIN:VM.SYG OBJ:VM

.DELETE/NOQ OBJ:VM.OBJ

.MACRO/OBJ:OBJ:VMX SRC:(XM+SYSGEN.CND+VM)

.LINK/EXE:BIN:VMX.SYG OBJ:VMX

.DELETE/NOQ OBJ:VMX.OBJ

.MACRO/OBJ:OBJ:RK SRC:(SYSGEN.CND+RK)

.LINK/EXE:BIN:RK.SYG OBJ:RK

.DELETE/NOQ OBJ:RK.OBJ

.MACRO/OBJ:OBJ:RKX SRC:(XM+SYSGEN.CND+RK)

.LINK/EXE:BIN:RKX.SYG OBJ:RKX

.DELETE/NOQ OBJ:RKX.OBJ

.MACRO/OBJ:OBJ:NL SRC:(SYSGEN.CND+NL)

.LINK/EXE:BIN:NL.SYG OBJ:NL

.DELETE/NOQ OBJ:NL.OBJ

.MACRO/OBJ:OBJ:NLX SRC:(XM+SYSGEN.CND+NL)

.LINK/EXE:BIN:NLX.SYG OBJ:NLX

.DELETE/NOQ OBJ:NLX.OBJ
.time
11:53:23
.


Время генерации - c 11:46:02 по 11:53:23 или 00:07:21

00:07:21 против 00:09:02. Да, не в два с половиной раза лучше, но.. XM монитор (даже не его более лёгкий брат XB) более чем ощутимо сделал SB :). Причём использовались вполне себе стандартные программы (MACRO, LINK ну и ещё мелькают IND и PIP), а не специально написанные под XM и не запускающиеся под SB программы :) То есть - щастье всем и пусть никто не уйдёт обиженным ((с) почти братья Стругацкие) почти даром :) Почти - потому что программа всё таки должна соблюдать определённые правила :) Ну или программист при её написании :)

И всё, что мне понадобилось - выдать команду SET RUN VBGEXE перед запуском батника :)

Ну а дальше - магия ДП и программистов фирмы DEC :)

И что же произошло? :) Поскольку показать распределение памяти при работе с этой хитрой настройкой не получится, придётся обходным путём увидеть - сколько памяти доступно программе. Поможет программа RESORC.

Программа запущена в "реальной" моде:



.R RESORC /J

Job Name Console Level State Low High Impure
--- ---- ------- ----- ----- --- ---- ------
0 RESORC 0 0 Run 000000 106010 122206


.


Если посмотреть SHO MEM для XM монитора - видно, что всё ок - RESORC доступна память доя 106010, а с адреса 106012 располагается USR

Программа запущена в "виртуальной" моде:



.VRUN RESORC /J

Job Name Console Level State Low High Impure
--- ---- ------- ----- ----- --- ---- ------
0 RESORC 0 0 Run 000000 157776 122206


.


RESORC принудительно запущена в виртуальном адресном пространстве - и её доступны уже 56 кб памяти, а не 35, как при запуске в режиме ядра и не 46, как при запуске под SB монитором :) Не пытайтесь смотреть распределение памяти в виртуальном адресном пространстве (опция /x) - программа пытается забраться в служебные таблица монитора... которые ей недоступны (как раз тот самый пример несоблюдения правил программой :) )

Знайте, а не только любите свой комп и софт под него - и вы сможете выжать из него чуть больше, а остальным это будет казаться тайной магией :) Ключевое слово - знайте :)

Ну и кстати - это ещё и тест корректности работы ДП :)

Hunta
17.01.2021, 01:05
Что нужно, что бы найти ошибку... чуть не сказал - в программе :) В тексте прошивки? Вдумчивое чтение документации и пристально рассматривание текста :)
Результат:



000042 000000 000000 000000
@DK0
DEVICE LP000: NOT IN CONFIGURATION
DEVICE DL000: NOT IN CONFIGURATION
DEVICE DL001: NOT IN CONFIGURATION
DEVICE DL002: NOT IN CONFIGURATION
DEVICE DL003: NOT IN CONFIGURATION
DEVICE DR000: NOT IN CONFIGURATION
DEVICE DR001: NOT IN CONFIGURATION
DEVICE DR002: NOT IN CONFIGURATION
DEVICE DR003: NOT IN CONFIGURATION
DEVICE DR004: NOT IN CONFIGURATION
DEVICE DR005: NOT IN CONFIGURATION
DEVICE DR006: NOT IN CONFIGURATION
DEVICE DR007: NOT IN CONFIGURATION
DEVICE DU000: NOT IN CONFIGURATION
DEVICE DU001: NOT IN CONFIGURATION
DEVICE DU002: NOT IN CONFIGURATION
DEVICE DU003: NOT IN CONFIGURATION
DEVICE MM000: NOT IN CONFIGURATION
DEVICE MM001: NOT IN CONFIGURATION
DEVICE MM002: NOT IN CONFIGURATION
DEVICE MM003: NOT IN CONFIGURATION
DEVICE MM004: NOT IN CONFIGURATION
DEVICE MM005: NOT IN CONFIGURATION
DEVICE MM006: NOT IN CONFIGURATION
DEVICE MM007: NOT IN CONFIGURATION
DEVICE MU000: NOT IN CONFIGURATION
DEVICE TT001: NOT IN CONFIGURATION
DEVICE TT002: NOT IN CONFIGURATION
DEVICE TT003: NOT IN CONFIGURATION
DEVICE TT004: NOT IN CONFIGURATION
DEVICE TT005: NOT IN CONFIGURATION
DEVICE TT006: NOT IN CONFIGURATION
DEVICE TT007: NOT IN CONFIGURATION
DEVICE TT010: NOT IN CONFIGURATION
DEVICE TT011: NOT IN CONFIGURATION
DEVICE TT012: NOT IN CONFIGURATION
DEVICE TT013: NOT IN CONFIGURATION
DEVICE TT014: NOT IN CONFIGURATION
DEVICE TT015: NOT IN CONFIGURATION
DEVICE TT016: NOT IN CONFIGURATION
DEVICE TT017: NOT IN CONFIGURATION
DEVICE TT020: NOT IN CONFIGURATION
DEVICE TT021: NOT IN CONFIGURATION
DEVICE TT022: NOT IN CONFIGURATION

RSX-11M V4.8 BL70 124.K MAPPED
>RED DK:=SY:
>RED DK:=LB:
>MOU DK:RSXM70
>@DK:[1,2]STARTUP
>* Please enter time and date (HH:MM DD-MMM-YY) [S]: 1:39 17-JAN-99
>TIME 1:39 17-JAN-99
>* ENTER LINE WIDTH OF THIS TERMINAL [D D:132.]:
>SET /BUF=TI:132.
>@ <EOF>
>SET /VT52=TI:
>


- - - Добавлено - - -



RSX-11M V4.8 BL70 (RSX11M) 124K 17-JAN-99 01:42:17
TASK= *IDLE* FREE= SY0:230. DK2:DMO
DK1:DMO DK3:DMO PARS
POOL=9994.:10044.:6.
9994.:10044.:6. EXCOM1:C
EXCOM2:C
IN: E E L T DDM D M M P F R P . LDRPAR:T
4 X X D T LRU U M C U C C M . TTPAR :T
20K C C R : ::: : : R C S T T . DRVPAR:D
OUT: O O . . O R . . R SYSPAR:T
0 M M . . M E . . M PUCOM :C
0K 1 2 . . S . . D FCSRES:C
!--!-!>=======))))==))-->!-------!==]->----- RCTPAR:T
0*******7*******15******23******31******38******46 ******54****** GEN :D
E-------P-----------C--C-TT-------D------T--CC-------T--D-------
----------------------------------------------------------------
62******69******77******85******93******100*****10 8*****116*****
> <--------->
F ERRSEQ
1 0.
1
A
C
P


- - - Добавлено - - -



>DEV DK:
DK0: Public Mounted Loaded Label=RSXM70
DK1: Loaded
DK2: Loaded
DK3: Loaded
DK4: Loaded
DK5: Loaded
DK6: Loaded
DK7: Loaded
>INS $FLX
>FLX DK7:/RT/DI


Directory DK7:
17-Jan-99

SWAP .SYS 28. 31-Oct-98
RT11SB.SYS 99. 9-Jan-20
RT11FB.SYS 107. 9-Jan-20
NL .SYS 2. 10-Jan-20
VM .SYS 3. 12-Jan-21
LDX .SYS 11. 2-Oct-20
RT11XB.SYS 114. 10-Jan-20
RT11XM.SYS 123. 9-Jan-20
NLX .SYS 2. 10-Jan-20
VMX .SYS 3. 10-Jan-20
< Unused > 11.
SANS04.CND 4. 9-Jan-20
SANS04.ANS 8. 9-Jan-20
SANS04.BLD 3. 9-Jan-20
SANS04.MON 8. 9-Jan-20
SANS04.DEV 4. 9-Jan-20
SANS04.TBL 5. 9-Jan-20
RT11XB.MAP 36. 10-Jan-20
RT11SB.MAP 34. 9-Jan-20
RT11FB.MAP 35. 9-Jan-20
RT11XM.MAP 38. 9-Jan-20
SL .SYS 17. 31-Oct-98
SLX .SYS 20. 31-Oct-98
ZA .SYS 4. 21-Jan-20
ZB .SYS 4. 21-Jan-20
ZC .SYS 4. 21-Jan-20
ZD .SYS 4. 21-Jan-20
ZE .SYS 4. 21-Jan-20
ZF .SYS 4. 21-Jan-20
ZAX .SYS 4. 21-Jan-20
ZBX .SYS 4. 21-Jan-20
ZCX .SYS 4. 21-Jan-20
ZDX .SYS 4. 21-Jan-20
ZEX .SYS 4. 21-Jan-20
ZFX .SYS 4. 21-Jan-20
SYSMAC.SML 92. 31-Oct-98
SYSLIB.OBJ 84. 31-Oct-98

ODT .OBJ 8. 31-Oct-98
VDT .OBJ 8. 31-Oct-98
SYSTEM.MLB 148. 31-Oct-98
EDTL .MLB 11. 31-Oct-98
PIP .SAV 30. 31-Oct-98
DESS .SAV 20. 4-Nov-93
DUP .SAV 52. 31-Oct-98
IND .SAV 58. 31-Oct-98
RESORC.SAV 35. 31-Oct-98
EDIT .SAV 19. 31-Oct-98
KED .SAV 85. 31-Oct-98
KEX .SAV 72. 31-Oct-98
MACRO .SAV 63. 31-Oct-98
CREF .SAV 6. 31-Oct-98
LINK .SAV 59. 31-Oct-98
LIBR .SAV 24. 31-Oct-98
SRCCOM.SAV 26. 31-Oct-98
BINCOM.SAV 25. 31-Oct-98
SLP .SAV 13. 31-Oct-98
SIPP .SAV 21. 31-Oct-98
PAT .SAV 11. 31-Oct-98
HELP .SAV 161. 31-Oct-98
FILEX .SAV 22. 31-Oct-98
DUMP .SAV 10. 31-Oct-98
BUP .SAV 68. 31-Oct-98
LET .SAV 6. 31-Oct-98
UCL .SAV 16. 31-Oct-98
SETUP .SAV 43. 31-Oct-98
VTCOM .SAV 24. 31-Oct-98
DATIME.SAV 4. 31-Oct-98
DATIME.MAC 23. 31-Oct-98
DATIME.COM 3. 31-Oct-98
SPLIT .SAV 3. 31-Oct-98
VBGEXE.SAV 18. 31-Oct-98
TERMID.SAV 4. 31-Oct-98

TRANSF.SAV 16. 31-Oct-98
TRANSF.TSK 76. 31-Oct-98
TRANSF.EXE 45. 31-Oct-98
MDUP .SAV 22. 31-Oct-98
MBOOT .BOT 1. 31-Oct-98
MBOT16.BOT 1. 31-Oct-98
MSBOOT.BOT 4. 31-Oct-98
MDUP .AI 72. 31-Oct-98
MDUP .MM 72. 31-Oct-98
MDUP .MS 72. 31-Oct-98
MDUP .MT 72. 31-Oct-98
MDUP .MU 72. 31-Oct-98
MSCPCK.SAV 4. 31-Oct-98
DBGSYM.SAV 10. 31-Oct-98
MONMRG.SAV 14. 31-Oct-98
T0007 .COM 1. 31-Jan-20
F77NER.OBJ 1. 27-Jun-85
STRTFB.COM 1. 2-Feb-20
STRTXB.COM 1. 2-Feb-20
STRTXM.COM 1. 2-Feb-20
NTD3E .SAV 3. 15-Jul-12
CPALL .COM 1. 2-Feb-20
TD .SAV 3. 15-Jul-12
WQ .SYS 4. 1-Apr-20
WS .SYS 4. 1-Apr-20
WQX .SYS 4. 1-Apr-20
TSY02 .COM 1. 23-Feb-01
TRK .COM 1. 3-Mar-20
TRK2 .COM 1. 5-Mar-20
TEST .COM 1. 5-Mar-20
TRK01 .COM 1. 15-Mar-20
TRK01B.COM 1. 15-Mar-20
RK .SYS 3. 20-Mar-20
RK .OBJ 3. 20-Mar-20
RKX .OBJ 4. 20-Mar-20
RKX .SYS 3. 20-Mar-20
TRK3 .COM 1. 21-Mar-20

WSX .SYS 4. 1-Apr-20
A0007 .COM 1. 1-Apr-20
DD .COM 1. 1-Apr-20
BOOZA2.SAV 2. 8-Apr-20
BOOZF1.SAV 3. 7-Feb-20
DIR .SAV 20. 31-Oct-98
BOOZA1.SAV 3. 8-Apr-20
T00NL .COM 1. 12-Apr-20
TEST .SAV 18. 12-Apr-20
TEST2 .SAV 2. 21-Apr-20
BOOZF0.SAV 3. 7-Feb-20
BOOZA0.SAV 3. 8-Apr-20
TEST .MAC 1. 12-Apr-20
LD .SYS 11. 2-Oct-20
< Unused > 7.
DRK .COM 1. 13-Apr-20
TEST2 .MAC 1. 21-Apr-20
TEST2 .OBJ 1. 21-Apr-20
TSY05 .COM 1.
TSY05B.COM 1. 21-May-20
< Unused > 3.
DAY .SAV 4. 13-Apr-13
DHRY .SAV 25. 8-Feb-15
YPTCB0.BIN 8. 22-May-20
DGTGB1.BIC 12. 22-May-20
TDIR .COM 1. 11-Jun-20
TRK5 .COM 1.
TEST3 .BAK 1.
F77CVF.OBJ 4. 27-Jun-85
F77EIS.OBJ 2. 27-Jun-85
F77RAN.OBJ 1. 27-Jun-85
TEST3 .MAC 1.
TEST3 .OBJ 35.
TEST3 .SAV 34.
TEST .CCC 1.
FORLIB.OBJ 134. 23-Jun-90
F77 .SAV 340. 27-Jun-85
F77XM .SAV 341. 27-Jun-85
F77COM.MSG 15. 5-Feb-85
F77MAP.OBJ 32. 27-Jun-85
SHORT .OBJ 1. 27-Jun-85
F77DWA.MAC 2. 6-Jun-85
< Unused > 1.
WHTSTN.FOR 10. 23-Jun-20
HXX .SYS 6. 12-Sep-20
HX .SYS 6. 12-Sep-20
< Unused > 1.
W .COM 1. 23-Jun-90
WHTSTN.LST 26. 23-Jun-90
VM .COM 1.
< Unused > 451.
WHTSTN.OBJ 13. 23-Jun-90
WHTSTN.SAV 31. 23-Jun-90
SPEED .SAV 20. 8-Sep-20
SPEED3.SAV 8. 20-Sep-20
TEST .OBJ 18.
< Unused > 351.

825. Free blocks

Total of 3937. blocks in 159. files

>PIP [*,*]/LI
MCR -- Task not in system
>INS $PIP
>PIP [*,*]/LI


Directory DK0:[1,51]
17-JAN-99 01:53

BRUSYS.SYS;1 434. C 09-OCT-98 18:13
BRUSYS.STB;1 24. 09-OCT-98 18:13

Total of 458./458. blocks in 2. files


Directory DK0:[1,1]
17-JAN-99 01:53

FCSRES.STB;1 12. 13-JAN-99 18:18
KITIDENT.DAT;1 1. 09-OCT-98 17:53
FCSRES.TSK;1 35. C 13-JAN-99 17:40
FCSFSL.TSK;1 34. C 13-JAN-99 17:40
FCSFSL.STB;1 2. 13-JAN-99 17:40

Total of 84./84. blocks in 5. files


Directory DK0:[1,2]
17-JAN-99 01:53

STARTUP.CMD;1 7. 09-OCT-98 06:25
QIOSYM.MSG;1 29. 09-OCT-98 17:54

Total of 36./36. blocks in 2. files


Directory DK0:[1,3]
17-JAN-99 01:53


Total of 0./0. blocks in 0. files


Directory DK0:[1,4]
17-JAN-99 01:53


Total of 0./0. blocks in 0. files


Directory DK0:[1,6]
17-JAN-99 01:53


Total of 0./0. blocks in 0. files


Directory DK0:[1,7]
17-JAN-99 01:53


Total of 0./0. blocks in 0. files


Directory DK0:[1,54]
17-JAN-99 01:53

SGNPARM.CMD;1 3. 09-OCT-98 06:25
RSX11M.TSK;1 130. C 13-JAN-99 17:38
RSX11M.STB;1 14. 13-JAN-99 17:38
EXCOM1.TSK;1 15. C 13-JAN-99 17:38
EXCOM1.STB;1 5. 13-JAN-99 17:38
EXCOM2.TSK;1 9. C 13-JAN-99 17:38
EXCOM2.STB;1 3. 13-JAN-99 17:38
LDR.TSK;1 5. C 13-JAN-99 17:38
RSX11M.SYS;1 498. C 13-JAN-99 17:40
TTDRV.TSK;1 23. C 13-JAN-99 17:40
TTDRV.STB;1 6. 13-JAN-99 17:40
DKDRV.TSK;1 3. C 13-JAN-99 17:40
DKDRV.STB;1 1. 13-JAN-99 17:40
DLDRV.TSK;1 4. C 13-JAN-99 17:40
DLDRV.STB;1 1. 13-JAN-99 17:40
DRDRV.TSK;1 6. C 13-JAN-99 17:40
DRDRV.STB;1 1. 13-JAN-99 17:40
DUDRV.TSK;1 11. C 13-JAN-99 17:40
DUDRV.STB;1 2. 13-JAN-99 17:40
PUCOM.TSK;1 6. C 13-JAN-99 17:40
PUCOM.STB;1 1. 13-JAN-99 17:40
MUDRV.TSK;1 10. C 13-JAN-99 17:40
MUDRV.STB;1 2. 13-JAN-99 17:40
LPDRV.TSK;1 4. C 13-JAN-99 17:40
LPDRV.STB;1 1. 13-JAN-99 17:40
MMDRV.TSK;1 7. C 13-JAN-99 17:40
MMDRV.STB;1 1. 13-JAN-99 17:40
ACNT.TSK;1 62. C 13-JAN-99 17:41
ACS.TSK;1 7. C 13-JAN-99 17:41
BOO.TSK;1 33. C 13-JAN-99 17:41
BRO.TSK;1 27. C 13-JAN-99 17:41
BYE.TSK;1 24. C 13-JAN-99 17:41
DMO.TSK;1 15. C 13-JAN-99 17:41
FCPLRG.TSK;1 76. C 13-JAN-99 17:41
HEL.TSK;1 57. C 13-JAN-99 17:41
ICP.TSK;1 144. C 13-JAN-99 17:41
ICX.TSK;1 146. C 13-JAN-99 17:41
INI.TSK;1 58. C 13-JAN-99 17:41
INS.TSK;1 60. C 13-JAN-99 17:41
LOA.TSK;1 29. C 13-JAN-99 17:41
MCRMU.TSK;1 33. C 13-JAN-99 17:41
SYS.TSK;1 125. C 13-JAN-99 17:41
MOU.TSK;1 46. C 13-JAN-99 17:42
PMD.TSK;1 22. C 13-JAN-99 17:42
PMT.TSK;1 16. C 13-JAN-99 17:42
RCT.TSK;1 13. C 13-JAN-99 17:42
RMD.TSK;1 107. C 13-JAN-99 17:42
SAV.TSK;1 79. C 13-JAN-99 17:42
SHF.TSK;1 15. C 13-JAN-99 17:42
SHUTUP.TSK;1 20. C 13-JAN-99 17:42
TKN.TSK;1 18. C 13-JAN-99 17:42
UFD.TSK;1 8. C 13-JAN-99 17:42
UNL.TSK;1 23. C 13-JAN-99 17:42
SYSVMR.CMD;1 3. 13-JAN-99 17:42
BAD.TSK;1 53. C 13-JAN-99 17:53
BRU.TSK;1 154. C 13-JAN-99 17:53
CFL.TSK;1 100. C 13-JAN-99 17:53
CMP.TSK;1 24. C 13-JAN-99 17:53
CRF.TSK;1 24. C 13-JAN-99 17:53
DMP.TSK;1 42. C 13-JAN-99 17:53
EDI.TSK;1 41. C 13-JAN-99 17:53
EDT.TSK;1 214. C 13-JAN-99 17:53
FLX.TSK;1 97. C 13-JAN-99 17:53
FMT.TSK;1 70. C 13-JAN-99 17:53
FTB.TSK;1 73. C 13-JAN-99 17:53
IOX.TSK;1 86. C 13-JAN-99 17:53
LBR.TSK;1 50. C 13-JAN-99 17:53
MAC.TSK;1 72. C 13-JAN-99 17:53
PAT.TSK;1 23. C 13-JAN-99 17:53
PIP.TSK;1 54. C 13-JAN-99 17:54
RPT.TSK;1 138. C 13-JAN-99 17:54
SLP.TSK;1 25. C 13-JAN-99 17:54
TKB.TSK;1 164. C 13-JAN-99 17:54
VFY.TSK;1 37. C 13-JAN-99 17:54
VMR.TSK;1 165. C 13-JAN-99 17:54
ZAP.TSK;1 28. C 13-JAN-99 17:54

Total of 3772./3772. blocks in 76. files

Grand total of 4350./4350. blocks in 85. files in 8. directories

>
>INS $BOO
INS -- Task name already in use
>BOO [1,51]BRUSYS

RSX-11M/RSX-11M-PLUS STANDALONE COPY SYSTEM V4.8


RSX-11M/RSX-11M-PLUS Standalone Configuration and Disk Sizing Program

Valid switches are:
/CSR=nnnnnn to change the default device CSR
/VEC=nnn to change the default device vector
/FOR=n to change the default magtape formatter number
/DEV to list all default device CSR and vectors


Enter first device: /DEC\C\V

Device CSR Vector CSR Status
------ ------ ------ ----------
DB 176700 254 Not Present
DK 177404 220 Present
DL 174400 160 Not Present
DM 177440 210 Not Present
DP 176714 300 Not Present
DR 176300 150 Not Present
DU 172150 154 Not Present
MM FOR=0 172440 330 Not Present
MS 172522 224 Not Present
MT 160000 320 Not Present
MU 174500 260 Not Present



Enter first device:


- - - Добавлено - - -

Безусловно, диски RK05 достаточно мелкие. В перспективе будут ещё контроллеры RL11, RH11 , RH70 и нативный контроллер SD карты. Да, под нативный контроллер нужно будет написать драйвера, но сложности особой не вижу.
Пока на очереди UMR и проверка других вариантов ДП в работе, контроллер SDRAM (с которого, собственно и началась большая переделка кода примерно года два с половиной назад) и причёска кода :)

- - - Добавлено - - -

А, да, забыл - первыми на очереди стоят исправление одной ошибки в процессоре и, возможно, одной ошибки (я переделал, но из за ошибки процессоре проверить тестом не могу) в модуле последовательного порта. Ну и генерация процессора PDP-11/34 с FPP и проверка - нет ли проблем в нём - всё таки много чего переделал. То есть что бы все известные мне тесты PDP-11 (7 штук) и тест памяти проходили БЕЗ ошибок

Hunta
18.01.2021, 15:32
За исключением одного момента (ниже) известные мне тесты для PDP-11/34 (FKAA?? - тест базовых команд, FKAB?? - тест прерываний, FKAC?? - тест EIS, FFPA??-FFPB??-FFPC?? - тесты FPP, FKTH?? - тест ДП и ZQMC?? - тест памяти) проходят все.



000042 000000 000000 000000
@DK1
DZQUD-E 21-JUL-76 RKDP - XXDP RK11 MONITOR 28K
RESTART ADDR:152522
BOOTED VIA UNIT#: 1
TO ABORT THE FOLLOWING HELP MESSAGE TYPE CTRL C (^C)

TYPE:
....
REFER TO XXDP USER MANUAL MD-11-DZQXA FOR ADDITIONAL HELP.
.R FKAA??

END OF DFKAA-B
END OF DFKAA-B
END OF DFKAA-B
000042 000000 000500 177777
@DK1
DZQUD-E 21-JUL-76 RKDP - XXDP RK11 MONITOR 28K
RESTART ADDR:152522
BOOTED VIA UNIT#: 1
TO ABORT THE FOLLOWING HELP MESSAGE TYPE CTRL C (^C)

TYPE:
....
REFER TO XXDP USER MANUAL MD-11-DZQXA FOR ADDITIONAL HELP.
.R FKAB??

000042 000001 000464 177777
@L 13714
@E 013714 001031
@D 431
@L 200
@S
END OF DFKAB
END OF DFKAB
END OF DFKAB
END OF DFKAB
000042 000001 000500 177777
@DK1
DZQUD-E 21-JUL-76 RKDP - XXDP RK11 MONITOR 28K
RESTART ADDR:152522
BOOTED VIA UNIT#: 1
TO ABORT THE FOLLOWING HELP MESSAGE TYPE CTRL C (^C)

TYPE:
....
REFER TO XXDP USER MANUAL MD-11-DZQXA FOR ADDITIONAL HELP.
.R FKAC??

END PASS##
END PASS##
END PASS##
END PASS##
000042 000000 000600 000404
@R
@DK1
DZQUD-E 21-JUL-76 RKDP - XXDP RK11 MONITOR 28K
RESTART ADDR:152522
BOOTED VIA UNIT#: 1
TO ABORT THE FOLLOWING HELP MESSAGE TYPE CTRL C (^C)

TYPE:
....
REFER TO XXDP USER MANUAL MD-11-DZQXA FOR ADDITIONAL HELP.
.R FFPA??

DFFPA, FP11-A 11/34 FPP DIAGNOSTIC PART 1

END PASS # 1 TOTAL ERRORS SINCE LAST REPORT 0

END PASS # 2 TOTAL ERRORS SINCE LAST REPORT 0

END PASS # 3 TOTAL ERRORS SINCE LAST REPORT 0

000042 105241 001100 003200
@DK1
DZQUD-E 21-JUL-76 RKDP - XXDP RK11 MONITOR 28K
RESTART ADDR:152522
BOOTED VIA UNIT#: 1
TO ABORT THE FOLLOWING HELP MESSAGE TYPE CTRL C (^C)

TYPE:
....
REFER TO XXDP USER MANUAL MD-11-DZQXA FOR ADDITIONAL HELP.
.R FFPB??

DFFPB, FP11-A 11/34 FPP DIAGNOSTIC PART 2

END PASS # 1 TOTAL ERRORS SINCE LAST REPORT 0

END PASS # 2 TOTAL ERRORS SINCE LAST REPORT 0

END PASS # 3 TOTAL ERRORS SINCE LAST REPORT 0

END PASS # 4 TOTAL ERRORS SINCE LAST REPORT 0

END PASS # 5 TOTAL ERRORS SINCE LAST REPORT 0

000042 000000 001066 000010
@DK1
DZQUD-E 21-JUL-76 RKDP - XXDP RK11 MONITOR 28K
RESTART ADDR:152522
BOOTED VIA UNIT#: 1
TO ABORT THE FOLLOWING HELP MESSAGE TYPE CTRL C (^C)

TYPE:
....
REFER TO XXDP USER MANUAL MD-11-DZQXA FOR ADDITIONAL HELP.
.R FFPC??

FP11A, 11/34 FPP, DIAGNOSTIC PART 3

END PASS # 1 TOTAL ERRORS SINCE LAST REPORT 0

END PASS # 2 TOTAL ERRORS SINCE LAST REPORT 0

END PASS # 3 TOTAL ERRORS SINCE LAST REPORT 0

END PASS # 4 TOTAL ERRORS SINCE LAST REPORT 0

END PASS # 5 TOTAL ERRORS SINCE LAST REPORT 0

000042 000000 001074 105252
@DK1
DZQUD-E 21-JUL-76 RKDP - XXDP RK11 MONITOR 28K
RESTART ADDR:152522
BOOTED VIA UNIT#: 1
TO ABORT THE FOLLOWING HELP MESSAGE TYPE CTRL C (^C)

TYPE:
....
REFER TO XXDP USER MANUAL MD-11-DZQXA FOR ADDITIONAL HELP.
.R FKTH??

MD-11-DFKTH-A 11/34 MEMORY MGMT. DIAG.

END PASS # 1 TOTAL ERRORS SINCE LAST REPORT 0

END PASS # 2 TOTAL ERRORS SINCE LAST REPORT 0

END PASS # 3 TOTAL ERRORS SINCE LAST REPORT 0

000042 000000 001100 172316
@DK1
DZQUD-E 21-JUL-76 RKDP - XXDP RK11 MONITOR 28K
RESTART ADDR:152522
BOOTED VIA UNIT#: 1
TO ABORT THE FOLLOWING HELP MESSAGE TYPE CTRL C (^C)

TYPE:
....
REFER TO XXDP USER MANUAL MD-11-DZQXA FOR ADDITIONAL HELP.
.R ZQMC??

MAINDEC-11-DZQMC-B

KT11 (MEMORY MANAGEMENT) AVAILABLE
MEMORY MAP:
FROM 000000 TO 757777

NO PARITY REGISTERS FOUND
PROGRAM RELOCATED TO 720000##
PROGRAM RELOCATED TO 000000##

END PASS # 1##
PROGRAM RELOCATED TO 720000##
PROGRAM RELOCATED TO 000000##

END PASS # 2##
000042 000060 001076 017777
@DK0

RSX-11M V4.8 BL70 124.K MAPPED
>RED DK:=SY:
>RED DK:=LB:
>MOU DK:RSXM70
>@DK:[1,2]STARTUP
>* Please enter time and date (HH:MM DD-MMM-YY) [S]: ^Z
>@ <EOF>
>RUN SHUTUP

RSX11M SHUT DOWN PROGRAM

Enter minutes to wait before shutdown:
OK to shutdown? [Y/N]:
OK to shutdown? [Y/N]: Y
All further logins are disabled

29-APR-74 00:00 System is now shutting down -- RSX11M

@LB:[1,2]SHUTUP

...AT. -- Command file open error
@LB:[1,2]SHUTUP
>
DMO DK0:/DEV
DMO -- System disk being dismounted
DMO -- SYSTEM dismounted from DK0: *** Final dismount initiated ***
00:00:46 *** DK0: -- Dismount complete

>
SHUTUP operation complete


Не совсем понятный момент.

Тест FKAB??, подтест 107

Проверка того, что RESET уходит во внешний мир и сбрасывает, в частности, бит – Прерывание разрешено у всех устройств.

Тест выполняет следующие команды:


MOV #100, @#177560
MOV #100, @#177564
RESET

После чего проверяет, что оба бита разрешения прерывания сброшены.

Что происходит.

Поскольку передатчик готов, разрешение прерывания моментально (да да, знаю, не моментально, а ОЧЕНЬ быстро) выставляет запрос на прерывание. То есть запись в 177564 ещё не снята, а запрос уже.

Что приводит к тому, что после завершения второй команды MOV, но ДО следующей команды RESET (приоритет у проца в этот момент 0) проц реагирует на запрос прерывания. А у теста вектор никак не настроен, точнее, настройка как на всех неиспользуемых векторах - .WORD .+2, 0 – то есть он не ожидает прерывания.

Упс.

По докам я не понял – какое поведение правильное – должна ли выполнится хотя бы ещё одна команда после второго MOV (более обще – сразу после разрешения прерывания) или нет.

По тому, что видел в теме “Особенности процессоров и устройств архитектуры PDP-11. Тесты. Диагностика.” на zx-pk – проц таки успевает выполнить ещё одну команду.

До прояснения ситуации оставляю пока всё как есть в этом моменте.

Дальше - UMR

Alex
18.01.2021, 16:26
Интересно, ведь есть ещё два варианта роста быстродействия сборки монитора RT11 под XM:

Первое, если запускать VRUN - попробовать не мелочиться - сразу 64 Кб ;)

Самое простое - программой SIPP - она есть в системе. SIPP file.sav/A, base выбрать 0, offset 4, написать 200 (или 220 если есть уверенность что программа не офигеет от полных 64kb памяти), enter, CTRL/Y. Если используется советский SL.SYS от Сторожевых, его нужно выключить - в нем есть косяки несовместимые с SIPP.
Можно чем-то другим подправить...


Второе, MACRO ведь оверлейная программа, так? Интересно, исходники MACRO доступны? Если оверлеи перекомпоновать с ключом /V ...
Сделать версию под мониторы расширенной памяти.

Да посмотреть разницу...

Hunta
19.01.2021, 08:33
В моём случае запуск производился не прямым использованием VRUN. И он не требует вмешательства в файл запускаемой программы. Но да, интересно попробовать дать MACRO 64 кб и посмотреть на результат.

Для второго сценария. Совсем не факт, что будет ускорение, я бы даже поставил на то, что возможно замедление. Почему. Упрощённый пример. Есть программа, у которой есть корневой сегмент и два оверлея. Их размеры - корень - 4 кб, оверлеи 5 и 6 кб. Без /V потребный размер памяти - 10 кб (корень плюс больший по размеру оверлей), с /V потребный размер памяти будет 16 кб (окно для корня - 8 кб и окно для оверлеев - 8 кб). То есть (грубо, ибо см ниже) будет доступно не 64-10 -> 54 кб, а 64-16 -> 48 кб.
Плюс к этому. Если в первом сценарии с динамической памятью всё просто (над границей 10 кб и выше), то втором случае потребуется создавать третье окно (надо окном оверлеев) и выделять память в нём - то есть - если программа работает И с оверлеями И с динамической памятью, просто так переключиться на оверлеи, резидентные в памяти, не получится - код работы с динамической памятью, как минимум, должен знать об этом. Не скажу, как сделана работа с динамической памятью в MACRO, но хороший шанс, что не заработает.

Alex
19.01.2021, 09:21
Вообще-то ускорение с MACRO /V должно быть за счёт того, что сам файл MACRO не читается с тома. Особенно сее заметно было бы на реальном диске, особенно если он в единственном экземпляре(типа DW:) Время мотания головок весьма изрядно. На флеш-накопители - эффект скорее всего мало заметен будет.
Возможно существует MACRO специально сгенерённый под монитор расширенной памяти?(отсутствие оверлеев совсем, буфера данных в том числе в расширенной памяти) Тут должна быть максимальная производительность.

Hunta
19.01.2021, 09:55
Вообще-то ускорение с MACRO /V должно быть за счёт того, что сам файл MACRO не читается с тома.
Вообще то там основная дисковая активность - это динамическая память. MACRO создаёт временный файл и когда памяти не хватает - начинает использовать его (типа файла подкачки). Эффект от его использования как раз и наблюдается под XM монитором (когда памяти существенно меньше). И в обеих случая (SB и XM) диск один и тот же. И поскольку /V - это дополнительные и существенные потери памяти, если специально не оптимизировать и код и его размещение под размер оверлеев, кратный 8 кб, то потери памяти могу быть очень существенными. Кроме того, я подозреваю, что DEC оптимизировала работу с оверлеями, что бы они читались по одному разу - по мере продвижения процесса, а тогда выигрыша от /V (в плане чтения с дисков оверлеев) не будет вообще. Потому что, в стандартных модулях, чтение ОВЕРЛЕЕВ в память (при любом их варианте) - это задача самой программы. И ЕСЛИ оверлей читается только один раз - то фиолетово, /O или /V


Возможно существует MACRO специально сгенерённый под монитор расширенной памяти?
Я о таком не знаю

Так что ещё раз подводя итоги
1. Есть хороший шанс, что при решении в лоб - просто замена /O на /V - MACRO вообще не взлетит
2. Даже если взлетит - я ставлю на то, что за счёт уменьшения объёма динамической памяти, скорость не улучшится, а останется на уровне прежней и есть хороший шанс, что она станет хуже.

- - - Добавлено - - -

Посмотрел дистры 5.4 и 5.7 - нет ни исходников, ни obj файлов MACRO

- - - Добавлено - - -

В 5.5 и 5.6 тоже нету

- - - Добавлено - - -

Так что пока всё это - теоретические размышления, подкреплённые практическим опытом :)

Alex
19.01.2021, 10:26
Ну 64 Кб MACRO подсунуть вполне реально ;)

Hunta
19.01.2021, 10:30
Надо трогать MACRO, мне это не сильно нравится.
Прогнозирую сокращение времени генерации ещё где то на минуту - минуту 15 секунд

Alex
19.01.2021, 10:35
Вообще у меня в те времена, возникла идея драйвера кэша, к коему идут обращения, а он подсовывает данные из буферов в расширенной памяти. Прикидывал на базе драйвера LD:
Правда тогда думал исключительно о кэшировании каталогов. Тогда многого не знал ...
Но это были чисто прикидки .

Hunta
19.01.2021, 11:05
идея драйвера кэша
Не, этот подвиг не для меня, особенно учитывая, что быстродействие накопителя на флеш памяти практически догоняет быстродействие VM на старых системах...

Alex
19.01.2021, 11:23
Сейчас смысла в такой конструкции мало...
Интересно только для тех, у кого старое железо.
На флеше - головку позиционировать не надо :)

Hunta
19.01.2021, 11:26
На флеше - головку позиционировать не надо
И время генерации системы в разных сценариях показаны именно в варианте - RK на флеше :)

Alex
19.01.2021, 11:31
Это понятно ...
Задержки минимальны ;)

Hunta
19.01.2021, 12:00
Задержки минимальны
Тем не менее - "лишняя" память сказывается весьма заметно :)

- - - Добавлено - - -

В планах дальше - добить UMR, поэтому начинаются эксперименты, пере- и до- делка и тестирование модулей ДП и RK2011. Ну и поскольку UMR - это доступ к память размером больше 18 бит - включил в ДП 22 бита и настроил память на 512 кб (почти максимум, что я могу получить на встроенных BRAM).

Ну и думаю ещё доделать функционал RK2011 с прицелом (в будущем) прогона на нём стандартных тестов.

- - - Добавлено - - -



RT-11XM (S) V05.07

.INI VM:
VM0:/Initialize; Are you sure? Y

.DIR VM:


0 Files, 0 Blocks
514 Free blocks

.BOO RT11SB

RT-11SB (S) V05.07
?KMON-F-File not found DK:STRTSB.COM

.INI VM:
VM0:/Initialize; Are you sure? Y

.DIR VM:


0 Files, 0 Blocks
898 Free blocks

.

Alex
19.01.2021, 12:03
В общем - измерение производительности системы память + процессор в основном.

Hunta
19.01.2021, 12:31
Показательный эксперимент


.BOO RK7:

RT-11XM (S) V05.07

.INI VM:
VM0:/Initialize; Are you sure? Y

.ASS VM0 WF

.ASS RK5 DK

.DAT 19-JAN-2021

.TIM 13:14

.IND S
.ini rk:/noq
.time
13:14:02
.$@sysgen.bld

.$@SYSGEN.MON

.ASSIGN RK5 SRC

.ASSIGN RK0 BIN

.ASSIGN RK0 MAP

.ASSIGN RK0 OBJ

.MACRO/OBJ:OBJ:KMSJ SRC:(SJ+SYSGEN.CND+EDTGBL+KMON+KMOVLY)

.MACRO/OBJ:OBJ:RMSJ SRC:(SJ+SYSGEN.CND+EDTGBL+USR+RMONSJ)

.MACRO/OBJ:OBJ:TBSJ SRC:(SJ+SYSGEN.CND+EDTGBL+SYSGEN.TBL)

.MACRO/OBJ:OBJ:BTSJ SRC:(SJ+SYSGEN.CND+EDTGBL+BSTRAP)

.LINK/EXE:BIN:RT11SJ.SYG/BOU:1000/PROMPT/MAP:MAP:RT11SJ OBJ:BTSJ
*OBJ:RMSJ,KMSJ,TBSJ//
Boundary section? OVLY0

.DELETE/NOQ OBJ:(BT,RM,KM,TB)SJ.OBJ

.MACRO/OBJ:OBJ:KMFB SRC:(FB+SYSGEN.CND+EDTGBL+KMON+KMOVLY)

.MACRO/OBJ:OBJ:RMFB SRC:(FB+SYSGEN.CND+EDTGBL+USR+RMONFB)

.MACRO/OBJ:OBJ:TBFB SRC:(FB+SYSGEN.CND+EDTGBL+SYSGEN.TBL)

.MACRO/OBJ:OBJ:BTFB SRC:(FB+SYSGEN.CND+EDTGBL+BSTRAP)

.LINK/EXE:BIN:RT11FB.SYG/BOU:1000/PROMPT/MAP:MAP:RT11FB OBJ:BTFB
*OBJ:RMFB,KMFB,TBFB//
Boundary section? OVLY0

.DELETE/NOQ OBJ:(BT,RM,TB,KM)FB.OBJ

.MACRO/OBJ:OBJ:KMXM SRC:(XM+SYSGEN.CND+EDTGBL+KMON+KMOVLY)

.MACRO/OBJ:OBJ:RMXM SRC:(XM+SYSGEN.CND+EDTGBL+USR+RMONFB)

.MACRO/OBJ:OBJ:SBXM SRC:(XM+SYSGEN.CND+EDTGBL+XMSUBS)

.MACRO/OBJ:OBJ:TBXM SRC:(XM+SYSGEN.CND+EDTGBL+SYSGEN.TBL)

.MACRO/OBJ:OBJ:BTXM SRC:(XM+SYSGEN.CND+EDTGBL+BSTRAP)

.LINK/EXE:BIN:RT11XM.SYG/BOU:1000/PROMPT/MAP:MAP:RT11XM OBJ:BTXM
*OBJ:RMXM,SBXM,KMXM,TBXM//
Boundary section? OVLY0

.DELETE/NOQ OBJ:(BT,RM,SB,KM,TB)XM.OBJ

.$@SYSGEN.DEV

.ASSIGN RK5 SRC

.ASSIGN RK0 BIN

.ASSIGN RK0 OBJ

.MACRO/OBJ:OBJ:TT SRC:(SYSGEN.CND+TT)

.LINK/EXE:BIN:TT.SYG OBJ:TT

.DELETE/NOQ OBJ:TT.OBJ

.MACRO/OBJ:OBJ:LD SRC:(SYSGEN.CND+LD)

.LINK/EXE:BIN:LD.SYG OBJ:LD

.DELETE/NOQ OBJ:LD.OBJ

.MACRO/OBJ:OBJ:LDX SRC:(XM+SYSGEN.CND+LD)

.LINK/EXE:BIN:LDX.SYG OBJ:LDX

.DELETE/NOQ OBJ:LDX.OBJ

.MACRO/OBJ:OBJ:VM SRC:(SYSGEN.CND+VM)

.LINK/EXE:BIN:VM.SYG OBJ:VM

.DELETE/NOQ OBJ:VM.OBJ

.MACRO/OBJ:OBJ:VMX SRC:(XM+SYSGEN.CND+VM)

.LINK/EXE:BIN:VMX.SYG OBJ:VMX

.DELETE/NOQ OBJ:VMX.OBJ

.MACRO/OBJ:OBJ:RK SRC:(SYSGEN.CND+RK)

.LINK/EXE:BIN:RK.SYG OBJ:RK

.DELETE/NOQ OBJ:RK.OBJ

.MACRO/OBJ:OBJ:RKX SRC:(XM+SYSGEN.CND+RK)

.LINK/EXE:BIN:RKX.SYG OBJ:RKX

.DELETE/NOQ OBJ:RKX.OBJ

.MACRO/OBJ:OBJ:NL SRC:(SYSGEN.CND+NL)

.LINK/EXE:BIN:NL.SYG OBJ:NL

.DELETE/NOQ OBJ:NL.OBJ

.MACRO/OBJ:OBJ:NLX SRC:(XM+SYSGEN.CND+NL)

.LINK/EXE:BIN:NLX.SYG OBJ:NLX

.DELETE/NOQ OBJ:NLX.OBJ
.time
13:22:49

SYSGEN шёл 13:14:02 до 13:22:49 - то есть 00:07:47
Я не делал SET RUN VBGEXE, но увёл рабочие файлы (по крайне мере MACRO) на VM. Результат похуже (было 00:07:21), но тоже - заметно быстрее, чем в SB

Alex
19.01.2021, 13:24
Хм.... это из-за того, что VM: место в нижней памяти занимает???
Для полноты картины глянуть сколько нижней памяти свободно...

Hunta
19.01.2021, 14:09
Хм.... это из-за того, что VM: место в нижней памяти занимает???
Нет. Содержимое VM всегда в верхней памяти.


.SHO MEM

------- Extended Memory --------
Address Module Words Type
------- ------ ----- ----
17760000 IOPAGE 4096. PRM HDW BYP
02000000 MEMTOP
00760000 VM 135168. SHR
00211300 ...... 91808.
00173600 IND 3488. SHR
00161200 SL 2688. PVT
00160000 MCA 320. PRM
00000000 KERNEL 28672. PRM HDW

------ Low Memory -------
Address Module Words
------- ------ -----
157274 RK 162.
120054 RMON 8008.
106012 USR 2577.
001000 ..BG.. 17669.


.

Те же самые 106012 (минус, когда работает MACRO, память для загруженного VM), как в XM без SET RUN VBGEXE

- - - Добавлено - - -


00760000 VM 135168. SHR - размер диска VM - 256 кб

Alex
19.01.2021, 15:39
Хм... Получается, что ХМ грузит в верхнюю память драйвера кроме загрузочного???
Надо будет мне почитать внимательно руководства по последним версиям RT11.
В 5.02 драйвера были в нижней памяти... у XM.

Hunta
19.01.2021, 15:46
Хм... Получается, что ХМ грузит в верхнюю память драйвера кроме загрузочного???
Нет


.LOA NL:

.SHO MEM

------- Extended Memory --------
Address Module Words Type
------- ------ ----- ----
17760000 IOPAGE 4096. PRM HDW BYP
02000000 MEMTOP
00760000 VM 135168. SHR
00211300 ...... 91808.
00173600 IND 3488. SHR
00161200 SL 2688. PVT
00160000 MCA 320. PRM
00000000 KERNEL 28672. PRM HDW

------ Low Memory -------
Address Module Words
------- ------ -----
157274 RK 162.
120054 RMON 8008.
117762 NL 29.
105716 USR 2578.
001000 ..BG.. 17639.


.LOA VM:

.SHO MEM

------- Extended Memory --------
Address Module Words Type
------- ------ ----- ----
17760000 IOPAGE 4096. PRM HDW BYP
02000000 MEMTOP
00760000 VM 135168. SHR
00211300 ...... 91808.
00173600 IND 3488. SHR
00161200 SL 2688. PVT
00160000 MCA 320. PRM
00000000 KERNEL 28672. PRM HDW

------ Low Memory -------
Address Module Words
------- ------ -----
157274 RK 162.
120054 RMON 8008.
117762 NL 29.
117504 VM 87.
105440 USR 2578.
001000 ..BG.. 17552.


.


Это сам драйвер должен это дело уметь - часть себя загружать в верхнюю часть (как SL и, ЕМНИП, PI).
я имел ввиду, что в верхней памяти находится не драйвер VM, а то, что видится как диск VM:

Alex
19.01.2021, 16:12
Интересно, а IND в верхней памяти запущен через VRUN? Или он сам ?

Hunta
19.01.2021, 17:18
Сам. Поскольку тут меня интересовал VM, а не VRUN - я не настраивал SET RUN VBGEXE

Hunta
23.01.2021, 21:19
Некоторые переделки с сигналами прерываний.

Пока возился, опять всплыла идея сделать единый модуль отработки прерываний (типа микрухи 559ВН1) - учитывая, что у автора PDP2011 код обработки прерывания повторяется с большей или меньше идентичностью во всех модулях, которые используют прерывания - мне при переделки под свой подход и шину приходилось в каждом переделывать. Что мне, понятно, не очень :)

В этот раз, видимо, желание превысило планку лени :)

Первый вариант заготовки сделал, попробовал на line clock (собственно, поскольку оттуда взял основу - понятно, кто первым попал на раздачу). На line clock вестимо, взлетел без проблем.

Вторым под раздачу попал KL11 (это модуль, основанный больше на моём коде, в отличии от KL2011, который от автора PDP2011, но допиленный мной). Сопротивлений было больше (были шерховатости в реализации), но сдался и он.

И вот тут - приятный(?) сюрприз - начал проходить FKAB??. В нём на прошлом варианте KL11 не проходил один тест (моё предположение - запрос на прерывание от вывода прилетал настолько быстро, что проц не успел начать выполнять следующую инструкцию - в тесте это была команда RESET, которая должна была сбросить разрешение прерывания). Приятно, что проходит тест, но вот замедление выдачи сигнала - надо будет потом посмотреть по сигналам - чего там :)

В целом, получается достаточно неплохой модуль :)

Следующий на очереди - RK2011.

- - - Добавлено - - -

Чуть позже проверю - что теперь с отработкой прерываний на 1 Гц тактовой :)

Vslav
23.01.2021, 21:22
Пока возился, опять всплыла идея сделать единый модуль отработки прерываний

Ты мой cpu11 не смотрел? Там этот модуль прерываний сделан, и он параметризованный, задается число входов и накидываются вектора которые контроллер выдает на каждый вход. По запросам работает приоритет (то есть выдается вектор на самый приоритетный запрос), и есть протокол хендшейка с модулями, которые запрашивают прерывания, то есть - на модули идут подтверждения что их прерывание выдано процессору на обработку. Такой модуль - это очевидное решение, потому что тулить выдачу вектора в каждый периферийный модуль - это запара. И еще отделенная выдача вектора со своим выделенным регистром упрощает и ускоряет мультиплексор данных.

Hunta
23.01.2021, 21:34
Ты мой cpu11 не смотрел?
Детально - нет.
Параметризация - это обычно первое, что я добавляю, когда переделываю под себя. Так что мой модуль параметризованный. Но пока работает с одним вектором - из многовекторных модулей пока только KL, да и то - его условно можно назвать многовекторным.

Hunta
24.01.2021, 01:11
Переделал RK2011 на использование модуля прерываний. И вылез занятный косяк. Диски видятся, каталог показывается, диски читаются, пишутся сравниваются, а при загрузке система останавливается... С таким пока ещё не сталкивался... Будем посмотреть.

При этом XXDP грузится (но она прерывания не использует). Попробую RSX грузануть...

- - - Добавлено - - -

Круть.... RSX-11M загрузилась влёт... А RT кожевряжется...

Hunta
26.01.2021, 12:08
Нашёл причину не загружаемости RT :) Последствия моего вмешательства в механизм отработки прерываний. Теперь, с выделенным модулем отработки прерываний можно будет спрямить :) Пока поправил тупо в лоб и проверил, что всё остальное (XXDP, RT-SB, RT-XM, RSX) не сломалось.

Из новостей. На моей плате интерфейсов распаял ещё два слота для SD и ещё один разъём подключения последовательного интерфейса (больше задел на будущее). Ещё на эту же плату будет распаяна Ethernet плата - когда дойду до этого дела :)

- - - Добавлено - - -

А, да, вдогонку. Был тут вопрос - чего это я использую SD, а не любимые мной CF :) Причины банальные:

- когда я только начинал возиться с PDP-20111, знаниев, что бы воткнуть что то, чего не было у автора в проекте, не было. То есть тогда подключить CF было не реально :) Сейчас, в принципе, могу, но.. см дальше :)

- на DE10 у меня доступен один разъём IDC40, в котором 4 пина заняты, остаётся 36. Технически, что бы подключить CF, вроде бы хватает (не считал!), но по простому и с параллельной работой больше одного.. как минимум придётся думать - как. А ещё неплохо бы иметь хотя бы один последовательный порт.. А ещё Ethernet (spi).. В общем, может когда-нибудь. В то время как SD с её четырьми пинами - можно навтыкать много и с минимальными усилиями :) Вон - добавил ещё два :) И свободно подключу ещё и Ethernet плату :)

- технически, я могу купить переходник-расширитель и получить ещё пару IDC40, но... у меня не совсем DE10, а VEEK-MT2S - которая имеет VGA экран (сенсорный, 800x480), которая использует тот же разъём, куда можно воткнуть расширитель, то есть - или то или другое. Правда, этот экран доступен только с ядра ARM-а, который сидит в той же микрухе, что и FPGA, а с ARM-ами у меня пока... не сложилось :) Так что пока мне он не доступен.. Но хочется :)

Hunta
30.01.2021, 01:17
Повозился я тут три вечера, а потом ещё протрахался один вечер обычный и ещё один вечер.. ну примерно с пяти вечера до двух ночи :) Это я про сейчас :)

Собственно, первоначальная идея была - прицепить два unibus устройства (одно из них - RK11), дабы добить UMR и прикинуть, как сделать 18-ти битную шину, такую, что бы поудобней была :) Но вот когда занялся этим делом и почитал доки.. выяснилось, что этот контроллер есть и в варианте под qbus :) И вроде как допилить авторский вариант до 22 бит не так уж и сложно :) На это ушло три вечера (то есть переделать авторский вариант на мой вариант внутренней шины, на мой модуль прерываний, на мой модуль ПДП и на слегка попиленный мной модуль SD).

А потом выяснилось, что типа всё работает, за исключением двух моментов.

Во первых - диски можно читать, на диски можно писать, в том числе и с файловой системой. Если сначала сбросить на диск образ другого диска - то есть через cop/dev. А проинить - хрен вам. "Сбойные блоки в системной области". При это, если попробовать попросить систему показать их (DIR/BAD или INI/BAD), то показывается пустая таблица, а за ней - их количество - для каждого диска - своё. Последнее, что я помню - 851 сбойный блок. Прим этом COP/DEV/VER проходил без сучка и задоринки.

Во вторых - RT (хахаха) опять не грузится - ни аппаратно, ни из под другой системы.

Ну, с первой проблемой разобрался достаточно быстро. Оказывается, эти диски - last track. То есть на последней дорожке производитель записывает инфу об обнаруженный сбойных блоках и с неё же идёт замена. Так же, туда можно добавить(!) инфу об найденных позднее сбойных блоках (и их тоже можно подменить). Вполне возможно, что эту дорожку можно проинить заново из под RT, но... чё то как то я не нашёл пока - как. Поэтому выкрутился с помощью simh

А вот вторая проблема крепко потрепала нервы. И есть мнение, что автор PDP2011 так с ней и не разобрался. Во всяком случае, у него на сайте написано, что загрузить RT он не смог, хотя если эту систему скопировать на RK, то всё грузится ок. Очень долго сужал границы возникновения проблемы, потом с помощью куска кода из вторичного и первичного загрузчика более наглядно показал сам себе - что же там происходит, какое то время тупо смотрел на исходники vhdl и документацию, потом, почесав почесуемое, плюнул на доку, внёс исправление хак и....



000042 000000 000000 000000
@DL1
RT-11SB V05.07

.R MSCPCK

.sho all

RT-11SB V05.07
Booted from DL1:RT11SB

USR is set SWAP
EXIT is set SWAP
KMON is set NOIND
MODE is set NOSJ
TT is set NOQUIET
ERROR is set ERROR
SL is set OFF
EDIT is set KED
FORTRAN is set FORTRA
KMON nesting depth is 3

CLI is set DCL, CCL, UCL, NO UCF

PDP 11/34 Processor
512KB of memory
Extended Instruction Set (EIS)
Memory Management Unit
60 Hertz System Clock

FPU support

Device Status CSR Vector(s)
------ ------ --- ---------
DM Not installed 177440 210
DU Not installed 172150 154
DW Not installed 000000
DX Not installed 177170 264
DY Not installed 177170 264
DZ Not installed 000000
RK Installed 177400 220
LD Installed 000000 000
LP Not installed 177514 200
LS Not installed 176500 470 474 300 304
MM Not installed 172440 224
MS Not installed 172522 224 300
MT Not installed 172520 224
MU Not installed 174500 260
NL Installed 000000 000
PI Not installed 000000 000
SL Installed 000000 000
SP Installed 000000 110
VM Installed 177572 250
XC Not installed 173300 210 214
XL Not installed 176500 300 304
DL Resident 174400 160
HX Installed 177560 000

TT (Resident)
DL (Resident)
DL1 = DK , SY
LD
RK
SL
HX
VM
SP
NL
13 free slots

Job Name Console Level State Low High Impure
--- ---- ------- ----- ----- --- ---- ------
0 RESORC 0 0 Run 000000 136122 137626

No multi-terminal support

Address Module Words
------- ------ -----
160000 IOPAGE 4096.
155654 DL 554.
136166 RMON 3995.
001000 ..BG.. 23867.

No LD units mounted



.
000042 000000 155654 137626
@DL3
RT-11XM V05.07

.TYPE V5USER.TXT

RT-11 V5.7

Installation of RT-11 Version 5.7 is complete and you are now running
RT-11 from your system volume.

Your system volume is your working volume if you have used the Automatic
Installation (AI) procedure. If you have installed RT-11 using that
procedure, Mentec recommends you verify the correct operation of your
system's software using the VERIFY verification procedure. You can only
perform VERIFY on the valid target (output) media you used for the AI
procedure. Run VERIFY before you run CONFIG. To run VERIFY, enter the
command:
IND VERIFY

You should read the file V5NOTE.TXT, which you can TYPE or PRINT. Also,
read the Introduction to RT-11, and the Installation Guide which
contain much of the information you need to use RT-11 Version 5.7.


.R MSCPCK

.sho all

RT-11XM V05.07
Booted from DL3:RT11XM
22 bit addressing is on

USR is set NOSWAP
EXIT is set SWAP
KMON is set NOIND
RUN is set NOVBGEXE
MODE is set NOSJ
TT is set NOQUIET
ERROR is set ERROR
SL is set OFF
EDIT is set KEX
FORTRAN is set FORTRA
KMON nesting depth is 3

CLI is set DCL, CCL, UCL, NO UCF

PDP 11/34 Processor
512KB of memory
Extended Instruction Set (EIS)
Memory Management Unit
60 Hertz System Clock

Device I/O time-out support
System job support
FPU support
UNIBUS mapping unavailable

Device Status CSR Vector(s)
------ ------ --- ---------
DM Not installed 177440 210
DU Not installed 172150 154
DW Not installed 000000
DX Not installed 177170 264
DY Not installed 177170 264
DZ Not installed 000000
LD Installed 000000 000
LP Not installed 177514 200
LS Not installed 176500 470 474 300 304
MM Not installed 172440 224
MS Not installed 172522 224 300
MT Not installed 172520 224
MU Not installed 174500 260
NC Not installed 000000
NL Installed 000000 000
NQ Not installed 174440 120
NU Not installed 174510 120
PI -Not installed 000000 000
RK Installed 177400 220
SL Installed 000000 000
SP Installed 000000 110
UB -Not installed 170200 000
VM Installed 177572 000
XC Not installed 173300 210 214
XL Not installed 176500 300 304
DL Resident 174400 160
HX Installed 177560 000

TT (Resident)
DL (Resident)
DL3 = DK , SY
MQ (Resident)
LD
SL
RK
HX
VM
SP
NL
21 free slots

Job Name Console Level State Low High Impure
--- ---- ------- ----- ----- --- ---- ------
0 RESORC 0 0 Run 000000 102652 117340

No multi-terminal support

------- Extended Memory --------
Address Module Words Type
------- ------ ----- ----
17760000 IOPAGE 4096. PRM HDW BYP
02000000 MEMTOP
00760000 VM 135168. SHR
00206000 ...... 92672.
00173400 SL 2688. PVT
00165000 SP 1664. SHR
00160000 MCA 1280. PRM
00000000 KERNEL 28672. PRM HDW

------ Low Memory -------
Address Module Words
------- ------ -----
155330 DL 660.
114716 RMON 8325.
102654 USR 2577.
001000 ..BG.. 16854.

No LD units mounted



.dir

SWAP .SYS 28P 31-Oct-1998 RT11AI.SYS 96P 31-Oct-1998
RT11SB.SYS 97P 31-Oct-1998 RT11FB.SYS 106P 31-Oct-1998
RT11XM.SYS 124P 31-Oct-1998 RT11ZM.SYS 127P 31-Oct-1998
DL .SY 4P 31-Oct-1998 DM .SYS 5P 31-Oct-1998
DU .SYS 10P 31-Oct-1998 DW .SYS 6P 31-Oct-1998
DX .SYS 4P 31-Oct-1998 DY .SYS 4P 31-Oct-1998
DZ .SYS 4P 31-Oct-1998 RK .SYS 3P 31-Oct-1998
LD .SYS 11P 31-Oct-1998 LP .SYS 2P 31-Oct-1998
LS .SYS 5P 31-Oct-1998 MM .SYS 10P 31-Oct-1998
MS .SYS 11P 31-Oct-1998 MT .SYS 9P 31-Oct-1998
MU .SYS 14P 31-Oct-1998 NL .SYS 2P 31-Oct-1998
PI .SYS 60P 31-Oct-1998 SL .SYS 17P 31-Oct-1998
SLMIN .SYS 12P 31-Oct-1998 SP .SYS 7P 31-Oct-1998
VM .SYS 3P 31-Oct-1998 XC .SYS 4P 31-Oct-1998
XL .SYS 4P 31-Oct-1998 DLX .SY 5P 31-Oct-1998
DMX .SYS 5P 31-Oct-1998 DUX .SYS 13P 31-Oct-1998
DWX .SYS 6P 31-Oct-1998 DXX .SYS 4P 31-Oct-1998
DYX .SYS 4P 31-Oct-1998 DZX .SYS 4P 31-Oct-1998
LDX .SYS 11P 31-Oct-1998 LPX .SYS 2P 31-Oct-1998
LSX .SYS 5P 31-Oct-1998 MMX .SYS 11P 31-Oct-1998
MSX .SYS 12P 31-Oct-1998 MTX .SYS 10P 31-Oct-1998
MUX .SYS 19P 31-Oct-1998 NCX .SYS 10P 31-Oct-1998
NLX .SYS 2P 31-Oct-1998 NQX .SYS 10P 31-Oct-1998
NUX .SYS 10P 31-Oct-1998 PIX .SYS 68P 31-Oct-1998
RKX .SYS 3P 31-Oct-1998 SLX .SYS 20P 31-Oct-1998
SPX .SYS 11P 31-Oct-1998 UBX .SYS 13P 31-Oct-1998
VMX .SYS 3P 31-Oct-1998 XCX .SYS 4P 31-Oct-1998
XLX .SYS 4P 31-Oct-1998 STRTAI.COM 46P 31-Oct-1998
STRTFB.COM 5P 31-Oct-1998 STRTSB.COM 1P 31-Oct-1998
STRTXM.COM 8P 31-Oct-1998 STRTXB.COM 5P 31-Oct-1998
STRTZM.COM 8P 31-Oct-1998 STRTZB.COM 5P 31-Oct-1998
PIP .SAV 30P 31-Oct-1998 DUP .SAV 52P 31-Oct-1998
DIR .SAV 20P 31-Oct-1998 IND .SAV 58P 31-Oct-1998
RESORC.SAV 35P 31-Oct-1998 EDIT .SAV 19P 31-Oct-1998
KED .SAV 85P 31-Oct-1998 KEX .SAV 72P 31-Oct-1998
MACRO .SAV 63P 31-Oct-1998 CREF .SAV 6P 31-Oct-1998
LINK .SAV 59P 31-Oct-1998 MONMRG.SAV 14P 31-Oct-1998
LIBR .SAV 24P 31-Oct-1998 FILEX .SAV 22P 31-Oct-1998
SRCCOM.SAV 26P 31-Oct-1998 BINCOM.SAV 25P 31-Oct-1998
SLP .SAV 13P 31-Oct-1998 DUMP .SAV 10P 31-Oct-1998
SIPP .SAV 21P 31-Oct-1998 BUP .SAV 68P 31-Oct-1998
PAT .SAV 11P 31-Oct-1998 HELP .SAV 161P 31-Oct-1998
SYSMAC.SML 92P 31-Oct-1998 SYSLIB.OBJ 84P 31-Oct-1998
BATCH .SAV 26P 31-Oct-1998 QUEMAN.SAV 16P 31-Oct-1998
FORMAT.SAV 28P 31-Oct-1998 SETUP .SAV 43P 31-Oct-1998
VTCOM .SAV 24P 31-Oct-1998 DATIME.SAV 4P 31-Oct-1998
DATIME.MAC 23P 31-Oct-1998 DATIME.COM 3P 31-Oct-1998
LET .SAV 6P 31-Oct-1998 SPLIT .SAV 3P 31-Oct-1998
UCL .SAV 16P 31-Oct-1998 VBGEXE.SAV 18P 31-Oct-1998
TERMID.SAV 4P 31-Oct-1998 QUEUE .REL 14P 31-Oct-1998
RTMON .REL 8P 31-Oct-1998 SPOOL .REL 12P 31-Oct-1998
SPOOL .SAV 22P 31-Oct-1998 VTCOM .REL 27P 31-Oct-1998
TRANSF.SAV 16P 31-Oct-1998 TRANSF.TSK 76P 31-Oct-1998
TRANSF.EXE 45P 31-Oct-1998 GIDIS .SAV 72P 31-Oct-1998
ALPH00.FNT 9P 31-Oct-1998 ODT .OBJ 8P 31-Oct-1998
VDT .OBJ 8P 31-Oct-1998 MDUP .SAV 22P 31-Oct-1998
MBOOT .BOT 1P 31-Oct-1998 MBOT16.BOT 1P 31-Oct-1998
MSBOOT.BOT 4P 31-Oct-1998 MDUP .AI 72P 31-Oct-1998
MDUP .MM 72P 31-Oct-1998 MDUP .MS 72P 31-Oct-1998
MDUP .MT 72P 31-Oct-1998 MDUP .MU 72P 31-Oct-1998
DEMOBG.MAC 2P 31-Oct-1998 DEMOFG.MAC 3P 31-Oct-1998
DEMOF1.FOR 1P 31-Oct-1998 DEMOF2.FOR 1P 31-Oct-1998
DEMOF3.FOR 3P 31-Oct-1998 DEMOB1.BAS 3P 31-Oct-1998
DEMOM1.MAC 4P 31-Oct-1998 DEMOKD.TXT 4P 31-Oct-1998
VERIFY.COM 2P 31-Oct-1998 IVP .COM 16P 31-Oct-1998
IVP .MAC 33P 31-Oct-1998 MTB .COM 16P 31-Oct-1998
MSB .COM 16P 31-Oct-1998 MUB .COM 16P 31-Oct-1998
FB .MAC 1P 31-Oct-1998 SB .MAC 1P 31-Oct-1998
XB .MAC 1P 31-Oct-1998 XM .MAC 1P 31-Oct-1998
ZB .MAC 1P 31-Oct-1998 ZM .MAC 1P 31-Oct-1998
SYSTEM.MLB 148P 31-Oct-1998 EDTL .MLB 11P 31-Oct-1998
BSTRAP.MAC 108P 31-Oct-1998 EDTG .MAC 29P 31-Oct-1998
KMON .MAC 147P 31-Oct-1998 KMOVLY.MAC 265P 31-Oct-1998
MTTEMT.MAC 24P 31-Oct-1998 MTTINT.MAC 72P 31-Oct-1998
RMON .MAC 215P 31-Oct-1998 TRMTBL.MAC 26P 31-Oct-1998
USR .MAC 92P 31-Oct-1998 XMSUBS.MAC 74P 31-Oct-1998
BA .MAC 22P 31-Oct-1998 DL .MAC 42P 31-Oct-1998
DM .MAC 32P 31-Oct-1998 DU .MAC 101P 31-Oct-1998
DW .MAC 46P 31-Oct-1998 DX .MAC 21P 31-Oct-1998
DY .MAC 27P 31-Oct-1998 DZ .MAC 18P 31-Oct-1998
LD .MAC 76P 31-Oct-1998 LP .MAC 14P 31-Oct-1998
LS .MAC 47P 31-Oct-1998 NC .MAC 45P 31-Oct-1998
NI .MAC 27P 31-Oct-1998 NL .MAC 12P 31-Oct-1998
NQ .MAC 31P 31-Oct-1998 NU .MAC 40P 31-Oct-1998
RK .MAC 13P 31-Oct-1998 SP .MAC 87P 31-Oct-1998
TJ .MAC 39P 31-Oct-1998 TM .MAC 31P 31-Oct-1998
TS .MAC 55P 31-Oct-1998 TU .MAC 41P 31-Oct-1998
UM .MAC 112P 31-Oct-1998 VM .MAC 36P 31-Oct-1998
XC .MAC 3P 31-Oct-1998 XL .MAC 42P 31-Oct-1998
FSM .MAC 38P 31-Oct-1998 EL .MAC 26P 31-Oct-1998
ERROUT.SAV 37P 31-Oct-1998 ELCOPY.MAC 18P 31-Oct-1998
ELINIT.MAC 17P 31-Oct-1998 ELTASK.MAC 13P 31-Oct-1998
ERRTXT.MAC 7P 31-Oct-1998 ERROUT.OBJ 36P 31-Oct-1998
RTSB .MAP 32P 31-Oct-1998 RTFB .MAP 35P 31-Oct-1998
RTXM .MAP 37P 31-Oct-1998 RTZM .MAP 38P 31-Oct-1998
SYSGEN.COM 286P 31-Oct-1998 SBFB .ANS 11P 31-Oct-1998
XBXM .ANS 12P 31-Oct-1998 XMEL .ANS 12P 31-Oct-1998
ZBZM .ANS 12P 31-Oct-1998 CONFIG.COM 29P 31-Oct-1998
CONFIG.SAV 10P 31-Oct-1998 V5USER.TXT 2P 31-Oct-1998
V5NOTE.TXT 36P 31-Oct-1998 CUSTOM.TXT 14P 31-Oct-1998
CONSOL.MAC 6P 31-Oct-1998 NITEST.MAC 24P 31-Oct-1998
MSCPCK.SAV 4P 31-Oct-1998 DBGSYM.SAV 10P 31-Oct-1998
SDS .SYS 23P 31-Oct-1998 SDH .SYS 24P 31-Oct-1998
SDSX .SYS 26P 31-Oct-1998 SDHX .SYS 26P 31-Oct-1998
INDEX .SAV 11P 31-Oct-1998 INDEXX.SAV 14P 31-Oct-1998
INDEXA.IMG 164P 31-Oct-1998 INDEXB.IMG 165P 31-Oct-1998
INDEX .IDX 7P 31-Oct-1998 TECO .SAV 50P 31-Oct-1998
CR .MAC 28P 31-Oct-1998 CT .MAC 101P 31-Oct-1998
DD .MAC 66P 31-Oct-1998 DP .MAC 24P 31-Oct-1998
DS .MAC 20P 31-Oct-1998 DT .MAC 18P 31-Oct-1998
PC .MAC 11P 31-Oct-1998 PD .MAC 31P 31-Oct-1998
RF .MAC 15P 31-Oct-1998 KRT .DSK 7000P 31-Oct-1998
ARK .DSK 1200P 31-Oct-1998 MSRT .DSK 1000P 31-Oct-1998
DISSAV.DSK 200P 31-Oct-1998 DL .SYS 5 30-Jan-2021
DLX .SYS 5 30-Jan-2021 HX .SYS 6 12-Sep-2020
HXX .SYS 6 12-Sep-2020
231 Files, 16570 Blocks
3812 Free blocks

.cop/dev/ver dl3: dl2:
DL2:/Copy; Are you sure? Y

.


Так что теперь у меня два контроллера дисковых накопителей :) Завтра-сегодня посмотрю, как себя поведёт RSX-11M-Plus - ибо теперь места есть побольше (ну примерно как в своё время на Квант-е 4) и можно попробовать завернуть дистр на RLV12 :)

Hunta
30.01.2021, 12:17
Любимое развлечение - SYSGEN. Пока для RT, но на RLV12 дисках.

Решил прогнать вместе с созданием листингов - ибо по исходникам, даже с комментариями, тяжеловато лазить по двоичному коду. Хотя и можно :)

Правда, не учёл то, что в обычном дистре практически все комменты того этого. Надо будет собрать дистр с исходниками с комментариями (не source kit, а аналог обычного дистра, но что бы все MAC файлы были без комментариями). Листинги SYSGEN-а с такого дистра будут полезны при поиске проблем в ядре и драйверах. Как-нибудь, как руки дойдут - ничего сложного в этом нет, но нужно время... :)

- - - Добавлено - - -

Грёбаная ФС от RT... Сгенерило 5 монитора из 6, начало делать 6-ый и... нет места на диске. Аха, нету. 4456 из 15917 свободно.
Пришлось вставить SQU после каждого монитора.

- - - Добавлено - - -

Кстати, помимо перечисленных ранее причин была ещё одна причина, почему взялся за DLV12 контроллер. Я пока не сильный спец по XXDP, а многие (особенно более новые) версии XXDP лежат на DL дисках. Так что теперь будут доступны и эти диски :)

Hunta
30.01.2021, 21:24
Не прошло и сорока лет (или комп не умел показывать или не нём не было RT), как я таки увидел ligth pattern от RT :):):)

Hunta
31.01.2021, 19:43
То, к чем стремились большев... тьфу, то есть - к чему стремился я :)


000042 000020 165212 155212
@DL0


RSX-11M-PLUS V4.6 BL87 256.KW System:"Baseline"
>RED DL:=SY:
>RED DL:=LB:
>RED DL:=SP:
>MOU DL0:"RSX11MPBL87"
>@DL:[1,2]STARTUP
>; PLEASE NOTE
>;
>; If you have not yet read the system release notes, please do so
>; now before attempting to perform a SYSGEN or to utilize the new
>; features of this system.
>;
>;
>; In order to start the SYSGEN process, type:
>;
>; >@SYSGEN
>;
>; When SYSGEN has completed and your generated system is
>; running, you may wish to edit several supplied prototype
>; command and text files to suit your system and application:
>;
>; File Purpose
>; ---- -------
>; [0,0]RSX11.SYS An account/password file
>; This file does contain privileged accounts.
>;
>; [1,2]STARTUP.CMD (This file) Invoked at bootstrap time to
>; control bringing up the system.
>;
>; [1,2]QMGSTART.CMD Invoked by STARTUP to start up the Queue
>; Manager and spooling system.
>;
>; [1,2]SHUTUP.CMD Invoked by SHUTUP when taking down the system
>; to perform system dependent shutdown tasks.
>;
>; [1,2]QMGSTOP.CMD Invoked by SHUTUP to stop the Queue Manager
>; and spooling system.
>;
>; [1,2]LOGIN.TXT Displayed on user's terminal when logging in.
>;
>; [1,2]BATCH.TXT Displayed at the beginning of each batch log
>; file.
>;
>;
>* Please enter time and date (HH:MM DD-MMM-YYYY) [S]: 20:11 31-jan-2021
>TIME 20:11 31-jan-2021
>ACS SY:/BLKS=1024.
>CON ONLINE ALL
>ELI /LOG/LIM
>CLI /INIT=DCL/CTRLC/DPR="<15><12>/$ /"
>INS LB:[1,1]RMSRESAB.TSK/RON=YES/PAR=GEN
INS -- File not found
>INS LB:[1,1]RMSLBL.TSK/RON=YES/PAR=GEN
INS -- File not found
>INS LB:[1,1]RMSLBM.TSK/RON=YES/PAR=GEN
INS -- File not found
>INS $QMGCLI
>INS $QMGCLI/TASK=...PRI
>INS $QMGCLI/TASK=...SUB
>QUE /START:QMG
>INS $QMGPRT/TASK=PRT.../SLV=NO
>QUE LP0:/CR/NM
>START/ACCOUNTING
>CON ESTAT LP0:
>QUE BAP0:/BATCH
>QUE BAP0:/AS:BATCH
>@ <EOF>
>
>


RSX-11M-PLUS V4.6 BL87 (BASLIN) 256K UP 000:00:01 31-JAN-21 20:12:03
TASK= *IDLE* FREE= SY0:7228. K1:DMO
DK0:DMO L1:DMO PARS
POOL=2596.:3732.:12. SECPOOL=443.:512.:86%
2596.:3732.:12. 443.:512.:86% SECPOL:P
SYSPAR:D
IN: D M TR T DMDPDM DDVV P . F F F GEN :D
8 I C KC T BMMUUU YDTF M . C 1 1
51K R R TT : :::C:: :::: T . S 1 1
OUT: 1 . N. O . A R A A
0 1 . . M . T E C C
0K M . . . . S P P
!====!===>]=]===))))!)=))))=)>-----+---! <>--+
0*******16******32******48******64******80******96 ******112*****
E-----P---P-------D---------------------------D-----------------
----------------------------------------------------------------
128*****144*****160*****176*****192*****208*****22 4*****240*****
----> <--->-->--->---->
R Q S H B ERRSEQ
M M Y R A 0.
D G S C P
T . L . 0
0 . O .
. G .





>
>
>

>set /uic=[200,200]
>@sysgen
>;
>; RSX-11M-PLUS V4.6 BL87 SYSGEN
>;
>; Copyright (c) 1995-1999 by Mentec Inc., U.S.A.
>;
>SET /DPRO=[RWED,RWED,RWE,R]
>;
>; To exit from the SYSGEN procedure at any time, type CTRL/Z.
>;
>; If you are unsure of the answer to a question for which a de-
>; fault answer exists, use the default answer.
>;
>;
>;
>;================================================= ==
>; Choosing SYSGEN Options 31-JAN-21 at 20:12
>;================================================= ==
>;
>;
>;
>; Every question is preceded by a question number (for example SU010)
>; which you can use to find the explanation of the question in the
>; RSX-11M-PLUS System Generation and Installation Guide.
>;
>; An explanation of every question is also available by pressing
>; the ESC key (or the ALTMODE key) in response to the question.
>;
>; If you are unfamiliar with the SYSGEN procedure, the explanation of
>; each question can be printed automatically before the question.
>;
>* SU010 Do you always want the explanation printed? [Y/N D:N]:
>;
>; SYSGEN always creates saved answer files containing your responses
>; to the SYSGEN questions:
>;
>; SYSGENSA1.CMD Setup questions, Executive options
>; SYSGENSA2.CMD Peripheral configuration
>; SYSGENSA3.CMD Nonprivileged task builds
>;
>; You should perform a PREPGEN first to create saved answer files, and
>; then perform a SYSGEN, specifying those saved answer files as input
>; to the Executive, peripheral, and nonprivileged task build sections.
>;
>* SU020 Do you want to use a saved answer file as input for
>* the Executive options? [Y/N D:N]:
>;
>* SU040 Do you want to use a saved answer file as input for
>* the peripheral configuration? [Y/N D:N]:
>;
>* SU060 Do you want to use a saved answer file as input for
>* the nonprivileged task builds? [Y/N D:N]:
>;
>* SU080 Do you want to do a PREPGEN? [Y/N D:N]:
>;
>* SU090 Enter the name of the disk drive containing your
>* target system disk [ddnn:] [S R:2-5]: dl0:
>;
>ASN DL0:=IN:
>ASN DL0:=OU:
>ASN DL0:=LB:
>ASN DL0:=WK:
>ASN DL0:=TK:
>ASN DL0:=BC:
>ASN DL0:=LI:
>ASN DL0:=OB:
>ASN DL0:=EX:
>ASN DL0:=MP:
>;
>* SU100 Do you want to run Autoconfigure on the host system
>* hardware? [Y/N D:N]: Y
>;
>; Running Autoconfigure:
>;
>INS $ACF
#ACF
>INS $ACO
>ACO SHOW
Processor Type: LSI-11/73 Memory Size: 124. Kw

Options:

Extended Instruction Set (EIS)
Switch Register (SWR)
Display Register
Parity Memory

Name Vector CSR Unit Type Remark
DKA 220 177404
0 RK05
1 RK05
2 RK05
3 RK05
4 RK05
5 RK05
6 RK05
7 RK05
DLA 160 174400
0 RL02
1 RL02
2 RL02
3 RL02
YLA 060 177560

>ACO SYSGEN
>;
>* SU110 Do you want to override the Autoconfigure results? [Y/N D:N]:


Очередной мильстоун :)

- - - Добавлено - - -

Воо! RSX чётко показывает, что не так :)



>DEV DL1:
DL1: Loaded Type=RL02
Seek_Optimization=Nearest:10.

>MOU DL1:/FOR
>INS $BAD
>BAD DL1:/LI
BAD -- DL1: Manufacturer's Bad Sector File corrupt
>BAD DL1:/OVR
BAD -- DL1: Total bad blocks= 0.
>


- - - Добавлено - - -

Но, зараза, всё равно его не записала...

Hunta
01.02.2021, 14:35
Пока ещё не всё сделано для, но:


000111 000004 000760 017730
@DL1
RT-11SB V05.07

.R MSCPCK

.boo rt11zm

RT-11ZM V05.07

.TYPE V5USER.TXT

RT-11 V5.7

Installation of RT-11 Version 5.7 is complete and you are now running
RT-11 from your system volume.

Your system volume is your working volume if you have used the Automatic
Installation (AI) procedure. If you have installed RT-11 using that
.....
contain much of the information you need to use RT-11 Version 5.7.


.R MSCPCK

.sho all

RT-11ZM V05.07
Booted from DL1:RT11ZM
22 bit addressing is on

USR is set NOSWAP
EXIT is set SWAP
KMON is set NOIND
RUN is set NOVBGEXE
MODE is set NOSJ
TT is set NOQUIET
ERROR is set ERROR
SL is set OFF
EDIT is set KEX
FORTRAN is set FORTRA
KMON nesting depth is 3

CLI is set DCL, CCL, UCL, NO UCF


?MON-F-No dev 013126

.


- - - Добавлено - - -

RSX тоже загрузилась, но у меня пока baseline вариант (заточен под генерацию) и он не использует ВСЕХ возможностей J11...

Hunta
05.02.2021, 13:45
Ещё шаг :)



000111 000000 000000 000000
@DL3
RT-11SB V05.07

.R MSCPCK

.BOO RT11FB

RT-11FB V05.07

.TYPE V5USER.TXT

RT-11 V5.7

Installation of RT-11 Version 5.7 is complete and you are now running
RT-11 from your system volume.

Your system volume is your working volume if you have used the Automatic
Installation (AI) procedure. If you have installed RT-11 using that
procedure, Mentec recommends you verify the correct operation of your
system's software using the VERIFY verification procedure. You can only
perform VERIFY on the valid target (output) media you used for the AI
procedure. Run VERIFY before you run CONFIG. To run VERIFY, enter the
command:
IND VERIFY

You should read the file V5NOTE.TXT, which you can TYPE or PRINT. Also,
read the Introduction to RT-11, and the Installation Guide which
contain much of the information you need to use RT-11 Version 5.7.


.R MSCPCK

.BOO RT11XM

RT-11XM V05.07

.TYPE V5USER.TXT

RT-11 V5.7

Installation of RT-11 Version 5.7 is complete and you are now running
RT-11 from your system volume.

Your system volume is your working volume if you have used the Automatic
Installation (AI) procedure. If you have installed RT-11 using that
procedure, Mentec recommends you verify the correct operation of your
system's software using the VERIFY verification procedure. You can only
perform VERIFY on the valid target (output) media you used for the AI
procedure. Run VERIFY before you run CONFIG. To run VERIFY, enter the
command:
IND VERIFY

You should read the file V5NOTE.TXT, which you can TYPE or PRINT. Also,
read the Introduction to RT-11, and the Installation Guide which
contain much of the information you need to use RT-11 Version 5.7.


.R MSCPCK

.BOO RT11ZM

RT-11ZM V05.07

.TYPE V5USER.TXT

RT-11 V5.7

Installation of RT-11 Version 5.7 is complete and you are now running
RT-11 from your system volume.

Your system volume is your working volume if you have used the Automatic
Installation (AI) procedure. If you have installed RT-11 using that
procedure, Mentec recommends you verify the correct operation of your
system's software using the VERIFY verification procedure. You can only
perform VERIFY on the valid target (output) media you used for the AI
procedure. Run VERIFY before you run CONFIG. To run VERIFY, enter the
command:
IND VERIFY

You should read the file V5NOTE.TXT, which you can TYPE or PRINT. Also,
read the Introduction to RT-11, and the Installation Guide which
contain much of the information you need to use RT-11 Version 5.7.


.R MSCPCK

.SHO ALL

RT-11ZM V05.07
Booted from DL3:RT11ZM
22 bit addressing is on

USR is set NOSWAP
EXIT is set SWAP
KMON is set NOIND
RUN is set NOVBGEXE
MODE is set NOSJ
TT is set NOQUIET
ERROR is set ERROR
SL is set OFF
EDIT is set KEX
FORTRAN is set FORTRA
KMON nesting depth is 3

CLI is set DCL, CCL, UCL, NO UCF

PDP 11/73A Processor
512KB of memory
Floating Point Microcode
Extended Instruction Set (EIS)
Memory Management Unit
Cache Memory
60 Hertz System Clock

Device I/O time-out support
System job support
FPU support

Device Status CSR Vector(s)
------ ------ --- ---------
DM Not installed 177440 210
DU Not installed 172150 154
DW Not installed 000000
DX Not installed 177170 264
DY Not installed 177170 264
DZ Not installed 000000
LD Installed 000000 000
LP Not installed 177514 200
LS Not installed 176500 470 474 300 304
MM Not installed 172440 224
MS Not installed 172522 224 300
MT Not installed 172520 224
MU Not installed 174500 260
NC Not installed 000000
NL Installed 000000 000
NQ Not installed 174440 120
NU Not installed 174510 120
PI -Not installed 000000 000
RK Installed 177400 220
SL Installed 000000 000
SP Installed 000000 110
UB -Not installed 170200 000
VM Installed 177572 000
XC Not installed 173300 210 214
XL Not installed 176500 300 304
DL Resident 174400 160
HX Installed 177560 000

TT (Resident)
DL (Resident)
DL3 = DK , SY
MQ (Resident)
LD
SL
RK
HX
VM
SP
NL
21 free slots

Job Name Console Level State Low High Impure
--- ---- ------- ----- ----- --- ---- ------
0 RESORC 0 0 Run 000000 100176 114664

No multi-terminal support

------- Extended Memory --------
Address Module Words Type
------- ------ ----- ----
17760000 IOPAGE 4096. PRM HDW BYP
02000000 MEMTOP
00760000 VM 135168. SHR
00215000 ...... 90880.
00202400 SL 2688. PVT
00174000 SP 1664. SHR
00160000 MCA 3072. PRM
00000000 KERNEL 28672. PRM HDW

------ Low Memory -------
Address Module Words
------- ------ -----
155330 DL 660.
112242 RMON 8987.
100200 USR 2577.
001000 ..BG.. 16192.

No LD units mounted



.BOO/FOR DL:

IL:174402
XDT>
000111 000000 004640 000000
@DL0


RSX-11M-PLUS V4.6 BL87 256.KW System:"DE10 "
>RED DL:=SY:
>RED DL:=LB:
>RED DL:=SP:
>MOU DL0:"RSX11MPBL87"
>@DL:[1,2]STARTUP
>; PLEASE NOTE
>;
>; If you have not yet read the system release notes, please do so
>; now before attempting to perform a SYSGEN or to utilize the new
>; features of this system.
>;
>;
>* Please enter time and date (HH:MM DD-MMM-YYYY) [S]: 14:44 05-FEB-2021
>TIME 14:44 05-FEB-2021
>ACS SY:/BLKS=1024.
>CON ONLINE ALL
>ELI /LOG/LIM
>CLI /INIT=DCL/CTRLC/DPR="<15><12>/$ /"
>INS LB:[1,1]RMSRESAB.TSK/RON=YES/PAR=GEN
>INS LB:[1,1]RMSLBL.TSK/RON=YES/PAR=GEN
>INS LB:[1,1]RMSLBM.TSK/RON=YES/PAR=GEN
>INS $QMGCLI
>INS $QMGCLI/TASK=...PRI
>INS $QMGCLI/TASK=...SUB
>QUE /START:QMG
>INS $QMGPRT/TASK=PRT.../SLV=NO
>QUE LP0:/CR/NM
>START/ACCOUNTING
>CON ESTAT LP0:
>QUE BAP0:/BATCH
>QUE BAP0:/AS:BATCH
>@ <EOF>
>
>
>CON DISPL ATT FOR SYS
SYS
PDP-11/73, EIS,QBUS,D-Space,SWR,Cache,FPP,
Clock=KW11-L, $TKPS=50., $TTPRM=000002, Cache_control=000001
>
>
>


RSX-11M-PLUS V4.6 BL87 (DE10 ) 256K UP 000:00:00 5-FEB-2021 14:44:31
TASK= *IDLE* FREE= SY0:2433. L2:DMO
ICBP=1596.:1662.:2. DL1:DMO L3:DMO PARS
POOL=11874.:13594.:10. SECPOOL=429.:512.:83%
11874.:13594.:10. 429.:512.:83% SECPOL:P
SYSPAR:D
IN: D . M TR T T DPDMLV P . F DRVPAR:D
8 I . C KC T T RUUUPF M . C GEN :D
57K R . R TT C : :C:::: T . S
OUT: 1 L . N. O O . A R
0 1 D . . M M . T E
0K M R . . . . S
!========!>===>]=]=!===))!)))=)>-----+--
0*******16******32******48******64******80******96 ******112*****
E--------P------P-------D----------------D------------D---------
----------------------------------------------------------------
128*****144*****160*****176*****192*****208*****22 4*****240*****
-! <--->---+---> <--->-->--->---->
F F R Q S H B ERRSEQ
1 1 M M Y R A 0.
1 1 D G S C P
A A T . L . 0
C C 0 . O .
P P . G .

Hunta
05.02.2021, 21:30
Сорян за качество, снимал на телефон :)
Может, потому пересниму качественней :)
И предупреждение - 90 мб :)

Light register под RT в действии (http://www.KpXX.Ru/PDPonFPGA/Hard/DisplayRegisterInAction/DisplayRegisterInAction2.mp4)

Ну и несколько более полная инфа из RT


000111 116142 155214 115236
@DL2
RT-11ZM (S) V05.07

.TYPE V5USER.TXT

RT-11 V5.7

Installation of RT-11 Version 5.7 is complete and you are now running
RT-11 from your system volume.

Your system volume is your working volume if you have used the Automatic
Installation (AI) procedure. If you have installed RT-11 using that
procedure, Mentec recommends you verify the correct operation of your
system's software using the VERIFY verification procedure. You can only
perform VERIFY on the valid target (output) media you used for the AI
procedure. Run VERIFY before you run CONFIG. To run VERIFY, enter the
command:
IND VERIFY

You should read the file V5NOTE.TXT, which you can TYPE or PRINT. Also,
read the Introduction to RT-11, and the Installation Guide which
contain much of the information you need to use RT-11 Version 5.7.


.R MSCPCK

.SHO ALL

RT-11ZM (S) V05.07
Booted from DL2:RT11ZM
22 bit addressing is on

USR is set NOSWAP
EXIT is set SWAP
KMON is set NOIND
RUN is set NOVBGEXE
MODE is set NOSJ
TT is set NOQUIET
ERROR is set ERROR
SL is set OFF
EDIT is set KEX
FORTRAN is set FORTRA
KMON nesting depth is 3
Global .SCCA flag is disabled

CLI is set DCL, CCL, UCL, NO UCF

PDP 11/73A Processor
512KB of memory
Floating Point Microcode
Extended Instruction Set (EIS)
Memory Management Unit
Cache Memory
50 Hertz System Clock

Global .SCCA support
FPU support
Extended unit support

Device Status CSR Vector(s)
------ ------ --- ---------
RK Installed 177400 220
DL Resident 174400 160
DU Not installed 172150 154
VM Installed 177572 000
LD Installed 000000 000
NL Installed 000000 000
SL Installed 000000 000
UB Not KMON installable 170200 000
HX Installed 177560 000
WQ Not installed 177134 204
WS Not installed 177134 204
ZA Not installed 161014 350
ZB Not installed 161054 354
ZC Not installed 161114 360
ZD Not installed 161154 364
ZE Not installed 161214 370
ZF Not installed 161254 374

TT (Resident)
DL (Resident)
DL2 = DK , SY
MQ (Resident)
LD
SL
RK
HX
VM
NL
17 free slots

Job Name Console Level State Low High Impure
--- ---- ------- ----- ----- --- ---- ------
0 RESORC 0 0 Run 000000 100714 115236

No multi-terminal support

------- Extended Memory --------
Address Module Words Type
------- ------ ----- ----
17760000 IOPAGE 4096. PRM HDW BYP
02000000 MEMTOP
00760000 VM 135168. SHR
00175400 ...... 94848.
00163000 SL 2688. PVT
00160000 MCA 768. PRM
00000000 KERNEL 28672. PRM HDW

------ Low Memory -------
Address Module Words
------- ------ -----
155332 DL 659.
112760 RMON 8821.
100716 USR 2577.
001000 ..BG.. 16359.

No LD units mounted



.

Hunta
10.02.2021, 20:59
Эпизодические развлекаюсь:


.boo rt11zm

RT-11ZM (S) V05.07

.TYPE V5USER.TXT

RT-11 V5.7

Installation of RT-11 Version 5.7 is complete and you are now running
RT-11 from your system volume.

Your system volume is your working volume if you have used the Automatic
....
contain much of the information you need to use RT-11 Version 5.7.


.R MSCPCK

.sho all

RT-11ZM (S) V05.07
Booted from DL1:RT11ZM
22 bit addressing is on

USR is set NOSWAP
EXIT is set SWAP
KMON is set NOIND
RUN is set NOVBGEXE
MODE is set NOSJ
TT is set NOQUIET
ERROR is set ERROR
SL is set OFF
EDIT is set KEX
FORTRAN is set FORTRA
KMON nesting depth is 3
Global .SCCA flag is disabled

CLI is set DCL, CCL, UCL, NO UCF

PDP 11/83 Processor
512KB of memory
Floating Point Microcode
Extended Instruction Set (EIS)
Memory Management Unit
Cache Memory
PMI Memory
50 Hertz System Clock

Global .SCCA support
FPU support
Extended unit support

Device Status CSR Vector(s)
------ ------ --- ---------
RK Installed 177400 220
DL Resident 174400 160
DU Not installed 172150 154
VM Installed 177572 000
LD Installed 000000 000
NL Installed 000000 000
SL Installed 000000 000
UB Not KMON installable 170200 000
HX Installed 177560 000
WQ Not installed 177134 204
WS Not installed 177134 204
ZA Not installed 161014 350
ZB Not installed 161054 354
ZC Not installed 161114 360
ZD Not installed 161154 364
ZE Not installed 161214 370
ZF Not installed 161254 374

TT (Resident)
DL (Resident)
DL1 = DK , SY
MQ (Resident)
LD
SL
RK
HX
VM
NL
17 free slots

Job Name Console Level State Low High Impure
--- ---- ------- ----- ----- --- ---- ------
0 RESORC 0 0 Run 000000 100714 115236

No multi-terminal support

------- Extended Memory --------
Address Module Words Type
------- ------ ----- ----
17760000 IOPAGE 4096. PRM HDW BYP
02000000 MEMTOP
00760000 VM 135168. SHR
00175400 ...... 94848.
00163000 SL 2688. PVT
00160000 MCA 768. PRM
00000000 KERNEL 28672. PRM HDW

------ Low Memory -------
Address Module Words
------- ------ -----
155332 DL 659.
112760 RMON 8821.
100716 USR 2577.
001000 ..BG.. 16359.

No LD units mounted



.boo/for dl:



RSX-11M-PLUS V4.6 BL87 256.KW System:"DE10 "
>RED DL:=SY:
>RED DL:=LB:
>RED DL:=SP:
>MOU DL0:"RSX11MPBL87"
>@DL:[1,2]STARTUP
>; PLEASE NOTE
>;
>; If you have not yet read the system release notes, please do so
>; now before attempting to perform a SYSGEN or to utilize the new
>; features of this system.
>;
>;
>* Please enter time and date (HH:MM DD-MMM-YYYY) [S]: ^Z
>@ <EOF>
>fun shutup
MCR -- Task not in system
>
>
>run shutup

RSX-11M-PLUS Shut down program

>
Enter minutes to wait before shutdown:
Reason for shutdown (<CR> for none):
OK to shutdown? [Y/N]: y
All further logins are disabled

30-MAR-1982 00:00 System is now shutting down -- DE10

@LB:[1,2]SHUTUP
>VCP DISCONNECT /ALL
>@ <EOF>
>
DMO DL0:/DEV/LOCK=V
DMO -- System disk being dismounted
DMO -- SYSTEM dismounted from DL0: *** Final dismount initiated ***
00:00:31 *** DL0: -- Dismount complete
>
SHUTUP operation complete



PMI память, конечно, фигня - RESORC весьма оригинально определяет её наличие, ну а какой вариант процессорной платы - определяется на основе кода, зашитого в Maintenance Register :)

Ковыряюсь с прохождением тестов для J-11.

Есть две проблемы в ZKDJ (неправильная загрузка psw из вектора при попытке выполнить JMP @#177776 и неправильная работа red stack zone) плюс проблема самого теста - команда CLR R1; SOB R1,. на оригинальном процессоре выполняется 7 раз за секунду, а на DE10 - 101 раз за секунду, из за чего тест думает, что не прилетает прерывание от таймера (что бы успевало прилететь, должна выполняться не быстрее 20 раз за секунду), у автора PDP2011 был даже хак на эту тему (что бы тесто проходил)

И есть одна проблема в тесте ZKDK (неправильная фиксация регистра SR1 при ошибке от MMU)

Hunta
11.02.2021, 13:52
Проблема с тестом ZKDK решена, тест проходит без проблем. По ощущениям - ошибка автора PDP-2011, в комментариях к прохождениям тестов есть его замечание, но, судя по моим раскопкам - неправильное. В доках, которые успел полистать, описание SR1 достаточно скудное, но по логике команды MTPI и по тесту, мне кажется - это вторая (первая - с загрузкой RT с RK) найденная мной ошибка.

С ZKDJ повоюю ещё сегодня вечером, если время останется...

Hunta
11.02.2021, 20:32
>con displ attr for sys
SYS
PDP-11/44, EIS,D-Space,SWR,Cache,FPP,
Clock=KW11-L, $TKPS=50., $TTPRM=000002, Cache_control=000001
>

Кто бы мог подумать, что PDP-11/44 поддерживает ID и Supervisor mode :) RSX, сгенерированная для использования возможностей J-11, спокойно грузанулась на PDP-11/44 :)

- - - Добавлено - - -

Гыыыы :) DOS/BATCH-11 (с которой я начинал на компах, на которых я начинал :) ) загрузилась на J-11 :):) Пришлось, правда, малость хакнуть её - была инициализация каких то регистров на странице в/в (назначение пока не знаю) на которой древняя ось налетела на то, что не на всех PDP-11 происходит поставтоинкремент регистра ( ака (R1)+ ), если текущее содержимое регистра ссылается на несуществующий адрес. Ну, поскольку инициализировать нечего - вытер блок нопами и вуаля:



000123 000200 157326 000000
@DK0
DOS/BATCH V10-01A
DATE: 11-FEB-2021
WRONG DATE DD-MMM-YY
DATE: 21:13
WRONG DATE DD-MMM-YY
DATE: 11-FEB-99
TIME: 21:13
DIALOGUE?
##
$
$HEL
ILL CMD!
$HEL 1,1
ILL CMD!
$LO 1,1
DATE:-11-FEB-99
TIME:-21:13:19
$RUN PIP
PIP V10-03A
#DK:[*,*]/DI

DIRECTORY DK0: [ 1,1 ]

11-FEB-99

BADB .SYS 1 05-NOV-98 <377>
MONLIB.CIL 180C 05-NOV-98 <377>
VERIFY.LDA 65C 05-NOV-98 <233>
FOO .BAR 3 06-NOV-98 <233>
ERRLOG.SYS 100C 11-FEB-99 <233>
OVRLAY.LIB 5 05-NOV-98 <233>
LINK .LDA 67C 05-NOV-98 <233>
CILUS .LDA 33C 05-NOV-98 <233>
PIP .LDA 36C 05-NOV-98 <233>
MACRO .LDA 39C 05-NOV-98 <233>
EDIT .LDA 13C 05-NOV-98 <233>
FILDMP.LDA 9C 05-NOV-98 <233>
LIBR .LDA 10C 05-NOV-98 <233>
FILCOM.LDA 12C 05-NOV-98 <233>
CREF .LDA 9C 05-NOV-98 <233>

TOTL BLKS: 582
TOTL FILES: 15

DIRECTORY DK0: [200,200]

11-FEB-99


TOTL BLKS: 0
TOTL FILES: 0



#


- - - Добавлено - - -

Жаль, на это диске нет компилятора с фортрана - можно было по быстрому накропать прогу, скомпилить и запустить :)

Когда до этого пытался запустить её (на эмуляторе Патрона, на simh) - долго не мог понять, что не так. На DE10 показывается текущее содержимое PC (ака R7 ака %7) - поэтому сразу видно - проц циклиться на небольшом участке, а пошаговый режим даже его показал. Ну, дальше дело техники :)

- - - Добавлено - - -

Кстати, загружаемые файлы в формате LDA :)

Гляну другие диски в DOS, может где есть ФОРТРАН :)

- - - Добавлено - - -

Фигушки... Надо прикручивать эмулятор DECTape...

- - - Добавлено - - -

Как выйти из программы под DOS :)



#^Z
^Z?
#^C
.KI PIP

$

Hunta
14.02.2021, 22:12
За исключением SOB . (слишком быстрый проц получился), два известных мне на текущий момент теста - проходят :)



000123 000000 000000 000000
@DL0


BOOTING UP XXDP-XM EXTENDED MONITOR


XXDP-XM EXTENDED MONITOR - XXDP V2.5
REVISION: F0
BOOTED FROM DL0
124KW OF MEMORY
NON-UNIBUS SYSTEM

RESTART ADDRESS: 152000
TYPE "H" FOR HELP !

.R ZKDJ??
ZKDJB2.BIC

ERROR WHILE TESTING BOARD FUNCTIONS
ERROR # =001172
ERROR PC =041224
000123 000000 000774 040002
@L 41262
@E 041262 077101
@D 777
@L 41466
@E 041466 077101
@D 777
@L 41220
@E 041220 077101
@D 777
@L 200
@S
CZKDJ-B-0 KDJ11 CPU DIAGNOSTIC
CZKDJB END PASS # 1
CZKDJB END PASS # 2
CZKDJB END PASS # 3
CZKDJB END PASS # 4
CZKDJB END PASS # 5
CZKDJB END PASS # 6
000123 000000 001000 040002
@
000123 000000 165212 001000
@
@DL0


BOOTING UP XXDP-XM EXTENDED MONITOR


XXDP-XM EXTENDED MONITOR - XXDP V2.5
REVISION: F0
BOOTED FROM DL0
124KW OF MEMORY
NON-UNIBUS SYSTEM

RESTART ADDRESS: 152000
TYPE "H" FOR HELP !

.R ZKDK??
ZKDKB0.BIC

SET BIT 8 = 1 FOR 18 BIT SYSTEM
CZKDK-B-0 KDJ11 MEMORY MANAGEMENT DIAGNOSTIC
CZKDKB END PASS # 1
CZKDKB END PASS # 2
CZKDKB END PASS # 3
CZKDKB END PASS # 4
CZKDKB END PASS # 5
CZKDKB END PASS # 6
CZKDKB END PASS # 7
CZKDKB END PASS # 8
CZKDKB END PASS # 9
CZKDKB END PASS # 10
000123 100053 000766 016000
@DL1
000123 173020 000502 157776
@DL1
RT-11SB (S) V05.07

.R MSCPCK

.BOO RT11FB

RT-11FB (S) V05.07

.TYPE V5USER.TXT

RT-11 V5.7

Installation of RT-11 Version 5.7 is complete and you are now running
...
contain much of the information you need to use RT-11 Version 5.7.


.R MSCPCK

.BOO RT11ZB

RT-11ZB (S) V05.07

.TYPE V5USER.TXT

RT-11 V5.7

Installation of RT-11 Version 5.7 is complete and you are now running
...
contain much of the information you need to use RT-11 Version 5.7.


.R MSCPCK

.BOO RT11XM

RT-11XM (S) V05.07

.TYPE V5USER.TXT

RT-11 V5.7

Installation of RT-11 Version 5.7 is complete and you are now running
...
contain much of the information you need to use RT-11 Version 5.7.


.R MSCPCK

.BOO RT11ZB

RT-11ZB (S) V05.07

.TYPE V5USER.TXT

RT-11 V5.7

Installation of RT-11 Version 5.7 is complete and you are now running
...
contain much of the information you need to use RT-11 Version 5.7.


.R MSCPCK

.BOO RT11ZM

RT-11ZM (S) V05.07

.TYPE V5USER.TXT

RT-11 V5.7

Installation of RT-11 Version 5.7 is complete and you are now running
...
contain much of the information you need to use RT-11 Version 5.7.


.R MSCPCK

.SHO CONF

RT-11ZM (S) V05.07
Booted from DL1:RT11ZM
22 bit addressing is on

USR is set NOSWAP
EXIT is set SWAP
KMON is set NOIND
RUN is set NOVBGEXE
MODE is set NOSJ
TT is set NOQUIET
ERROR is set ERROR
SL is set OFF
EDIT is set KEX
FORTRAN is set FORTRA
KMON nesting depth is 3
Global .SCCA flag is disabled

CLI is set DCL, CCL, UCL, NO UCF

PDP 11/83 Processor
512KB of memory
Floating Point Microcode
Extended Instruction Set (EIS)
Memory Management Unit
Cache Memory
PMI Memory
50 Hertz System Clock

Global .SCCA support
FPU support
Extended unit support


.BOO/FOR DL:



RSX-11M-PLUS V4.6 BL87 256.KW System:"DE10 "
>RED DL:=SY:
>RED DL:=LB:
>RED DL:=SP:
>MOU DL0:"RSX11MPBL87"
>@DL:[1,2]STARTUP
>; PLEASE NOTE
>;
>; If you have not yet read the system release notes, please do so
>; now before attempting to perform a SYSGEN or to utilize the new
>; features of this system.
>;
>;
>* Please enter time and date (HH:MM DD-MMM-YYYY) [S]: 22:20 14-FEB-2021
>TIME 22:20 14-FEB-2021
>ACS SY:/BLKS=1024.
>CON ONLINE ALL
>ELI /LOG/LIM
>CLI /INIT=DCL/CTRLC/DPR="<15><12>/$ /"
>INS LB:[1,1]RMSRESAB.TSK/RON=YES/PAR=GEN
>INS LB:[1,1]RMSLBL.TSK/RON=YES/PAR=GEN
>INS LB:[1,1]RMSLBM.TSK/RON=YES/PAR=GEN
>INS $QMGCLI
>INS $QMGCLI/TASK=...PRI
>INS $QMGCLI/TASK=...SUB
>QUE /START:QMG
>INS $QMGPRT/TASK=PRT.../SLV=NO
>QUE LP0:/CR/NM
>START/ACCOUNTING
>CON ESTAT LP0:
>QUE BAP0:/BATCH
>QUE BAP0:/AS:BATCH
>@ <EOF>
>
>
>RMD

RSX-11M-PLUS V4.6 BL87 (DE10 ) 256K UP 000:00:00 14-FEB-2021 22:20:44
TASK= *IDLE* FREE= SY0:2315. L2:DMO
ICBP=1596.:1662.:2. DL1:DMO L3:DMO PARS
POOL=11874.:13594.:10. SECPOOL=429.:512.:83%
11874.:13594.:10. 429.:512.:83% SECPOL:P
SYSPAR:D
IN: D . M TR T T DPDMLV P . F DRVPAR:D
8 I . C KC T T BUUUPF M . C GEN :D
57K R . R TT C : :C:::: T . S
OUT: 1 L . N. O O . A R
0 1 D . . M M . T E
0K M R . . . . S
!========!>===>]=]=!===))!)))=)>-----+--
0*******16******32******48******64******80******96 ******112*****
E--------P------P-------D----------------D------------D---------
----------------------------------------------------------------
128*****144*****160*****176*****192*****208*****22 4*****240*****
-! <--->--+----> <--->-->--->---->
F F R Q S H B ERRSEQ
1 1 M M Y R A 0.
1 1 D G S C P
A A T . L . 0
C C 0 . O .
P P . G .





>CON DISPL ATTR FOR SYS
SYS
PDP-11/83, EIS,QBUS,D-Space,SWR,Cache,FPP,
Clock=KW11-L, $TKPS=50., $TTPRM=000002, Cache_control=000001
>


- - - Добавлено - - -

Э.. ошибся :) Ещё один тест проходит - ZKDL - тест FPP :)

Hunta
11.07.2021, 12:29
Второй день большого тестирования (моего варианта) PDP-2011 на DE10.

Выставляю разные варианты процессора, синтезирую, заливаю прошивку и прогоняю некоторый (формальный) набор тестов, один из которых - зашитый в ОЗУ тест (из набора, но остальные нацелены на ДП), проверяющий работу таймера, эхо с консольного ввода и показ на регистре дисплея - условное название - тест 1000, а ещё один - тест памяти из ПЗУ - условное название - тест ZZ.

Объём теоретически доступной памяти - 512 кб, объём доступной реально памяти - зависит от процессора.
На PDP-11/23 и PDP-11/24 определилось неправильно - потом буду разбираться - почему

Варианты проца J11 с суффиксом wSOBBug - это попытка автора бороться за прохождения теста J11, в котором проверяется прилёт запроса на прерывание от консольного порта с задержкой на ожидание, сделанной весьма тупо (а ля SOB R0, .) - на быстром процессоре (типа FPGA-шной реализации) цикл заканчивает ДО того, как будет прерывание от терминал - и тест считает, что типа ошибка. В процах с суффиксом wSOBBug сделана искусственная задержка скорости выполнения команды SOB, что обеспечивает прохождения теста.

Тесты прошивки:
1. запустилась в ПЗУ
2. прошёл тест 1000
3. прошёл тест ZZ
4. загрузилась DOS-11, каталог успешно считан и показан
5. загрузилась RT11SB и прошла тест копирования RK и RL с проверкой
6. загрузилась RT11XM и прошла тест копирования RK и RL с проверкой
7. загрузилась RT11ZM и прошла тест копирования RK и RL с проверкой
8. загрузилась RSX-11M-Plus и прошла тест копирования RL с проверкой

Не все тесты сразу пришли в голову, поэтому не на всех процессорах пробовал запустить полный набор. Ну и на некоторых процах некоторые тесты в принципе не возможны :)

Суммарный лог (+ - тест пройден, x - тест не пройден, . - тест на данном процессоре не возможен, ? - данный тест на этом процессоре не запускался, в конце - как был определён процессор и мои примечания)
По мере прохождения тестов информация будет добавляться, в конце добавлю более подробный лог



ROM started
Test 1000 completed successfully
Test ZZ completed successfully
DOS-11 started
RT11SB started, test completed successfully
RT11XM started, test completed successfully
RT11ZM started, test completed successfully
RSX started, test completed successfully

PDP-11/03 +x?x+??. -> 56kb LSI 11 or PDP 11/03 (Check Test 1000 for invalid ops)
PDP-11/04 ++?++??. -> 56kb PDP 11/15,20
PDP-11/05 ++?++??. -> 56kb PDP 11/15,20
PDP-11/10 ++?++??. -> 56kb PDP 11/15,20
PDP-11/15 ++?++??. -> 56kb PDP 11/15,20
PDP-11/20 ++?++??. -> 56kb PDP 11/15,20
SBC-11/21 ++?+x??.
PDP-11/23 ++?++??. -> 248kb PDP-11/24 (512kb RAM!!)
PDP-11/24 ++?++??. -> 248kb PDP-11/24 (512kb RAM!!)
PDP-11/34 ++?++??. -> 248kb PDP-11/34
PDP-11/34a ++?++??. -> 248kb PDP-11/34
PDP-11/34c ++?++??. -> 248kb PDP-11/34
PDP-11/35 ++++x??.
PDP-11/40 ++++x??.
PDP-11/44 ++++++++ -> 512kb PDP11-44
PDP-11/45 +++++++x -> 248kb PDP-11/45,50,55 (RSX - not enough memory)
PDP-11/50 +++++++x -> 248kb PDP-11/45,50,55 (RSX - not enough memory)
PDP-11/55 +++++++x -> 248kb PDP-11/45,50,55 (RSX - not enough memory)
PDP-11/60 ++++xxxx
PDP-11/70 ++++++++ -> 512kb PDP-11/45,50,55
PDP-11/53_wSOBBug ++++xxxx
PDP-11/53 ++++xxxx
PDP-11/73_wSOBBug ++++++++ -> 512kb PDP-11/73A (SOB - 5 op/s)
PDP-11/73 ++++++++ -> 512kb PDP-11/73A (SOB - 101 op/s)
PDP-11/83_WSOBBug ++++++++ -> 512kb PDP-11/83
PDP-11/83 ++++++++ -> 512kb PDP-11/83
PDP-11/84_wSOBBug ++++++++ -> 512kb PDP-11/84
PDP-11/84 ++++++++ -> 512kb PDP-11/84
PDP-11/93_wSOBBug +++++++x -> 512kb PDP-11/93 (177526 register not accessable)
PDP-11/93 ++++++++ -> 512kb PDP-11/93 (177526 register not accessable - was bypassed)
PDP-11/94_wSOBBug ++++++++ -> 512kb PDP-11/94 (177526 register not accessable - was bypassed)
PDP-11/94 ++++++++ -> 512kb PDP-11/94 (177526 register not accessable - was bypassed)

Hunta
12.07.2021, 10:12
Первый прогон завершён. Подробный листинг будет позже.

Из выводов - надо изучать мат часть, чтобы можно было запустить синтез на все варианты процов сразу :) Ну и потом уже прошивать и тестировать :) Причём желательно всё это делать из командной строки - всё равно Квартус я не использую для редактирования - только для сборки и прошивк :)

Hunta
13.07.2021, 21:25
PDP-11/70 теперь определяется как PDP-11/70 - и в RT и в RSX :) Добиваю проверки этого процессора.

Дальше попробую определить, что не понравилось RT на PDP-11/35, PDP-11/40 и PDP-11/60.

Потом сделаю вариант RSX-11M для DL и 248 кб - тоже будет участником тестирования

- - - Добавлено - - -

Вдогонку.

177526 - это TOY часы на PDP-11/93 и PDP-11/94. Странно, конечно, что система тупо лезет по этому адресу, считая, что на данных процессорах он есть, - даже не проверяя - а так ли это.

Но учитывая, что уже натыкался на предопределённое поведение систем на некоторых процессорах (ну да, на железных по другому и не бывало) - как бы и не так уж и странно.. :)

- - - Добавлено - - -

Сделал все регистры, которые есть PDP-11/70 и у процов на основе KDJ11-B (PDP-11/83/84) и KDJ11-E (PDP-11/93/94), включая 177526 - через который идёт общение с TOY часами (но возвращаются сплошные нули :) )

Теперь правильно определяется PDP-11/70 и RSX при попытке синхронизировать время с TOY не вылетает в отладчик :)

Поскольку вариант набора регистров от автора PDP-2011 оказался не сложным в реализации - были сделаны эти правки :) Так что не работоспособность RT на PDP-11/35, PDP-11/40 и PDP-11/60 - дело следующих вечеров...

- - - Добавлено - - -

Занимательно :) Теперь RT-11 при загрузке на PDP-11/93 PDP-11/94 сбрасывает дату в - Invalid date, а время в 00:00:00 :) Драйвер NL:, который общается с TOY часами - похоже тупо ничего не проверяет :) Потом гляну в исходники.. :)

Hunta
14.07.2021, 09:19
Что косячит в PDP-11/35 (и скорее всего - и в PDP-11/40 - насколько я помню, внешне ошибка проявлялась одинаково) - обнаружилось. Драйвер VM :) Точнее - ожидаемое поведение ДП отличается от того, что реализовано в прошивке. Уже проще. И значит, скорее всего XXDP может помочь :)

До следующей урывки :)

Oleg N. Cher
14.07.2021, 12:57
Hunta, с тех пор как я стал гордым обладателем ZX-Uno (на FPGA), мне захотелось две вещи:

1. Запустить на нём Виртовскую Оберон-систему (https://habr.com/ru/post/259755/).
2. Ядро для моей любимой УКНЦ, ну и БК/ДВК тоже можно.

Ваша активность в сторону второго пункта) Респектирую.

Hunta
14.07.2021, 13:19
в сторону второго пункта)
В PDP-2011 пока только DEC-овские процессора. Так что из наших микропроцессоров можно воспроизвести только 1811 (F11) и 1831 (J11). Ну, может быть частично 1807 (T11).

Возможно, когда-нибудь, добавлю ВМ1-3. Тогда и можно будет говорить о БК/УКНЦ/ДВК. Но я не ставлю себе целью сделать идентичные по скорости процессора, так что ВМ1-3, ну по крайне мере ВМ1-2 будут работать быстрее оригиналов.

Hunta
14.07.2021, 17:46
Ну ишо бы PDP-11/35 и PDP-11/40 не одинаково себя вели :) Даже железный проц один и тот же :)
PDP-11/40 - retail, PDP-11/35 - oem :)

Hunta
14.07.2021, 21:30
Из занимательного...


@DL0

CPU NOT SUPPORTED BY XXDP-XM



BOOTING UP XXDP-SM SMALL MONITOR


XXDP-SM SMALL MONITOR - XXDP V2.6
REVISION: E0
BOOTED FROM DL0
28KW OF MEMORY
UNIBUS SYSTEM

RESTART ADDRESS: 152010
TYPE "H" FOR HELP

.

Это он на PDP-11/35. Подозреваю, что из за чего то косячного в ДП (которое так же валит VM)..

Hunta
15.07.2021, 20:06
PDP-2011 в роли PDP-11/03 (ака LSI-11) и XXDP :)



+ VKAA - 11/03 Basic Instr. test

+ VKAB - 11/03 EIS Instr. test

- VKAC - 11/03 FIS Instr. test
Нету FIS-а :)

+- VKAD - 11/03 TRAP test
Пришлось ручками подсказать, что нету FIS-а :)

- VKAH - 11/03 LSI-11 4k System Exerciser
Как правильно запускать - не понятно, описание отличается от листинга

- VKAI - 11/03 DIBOL Instr. test part 1
Нету DIS-а :)

- VKAJ - 11/03 DIBOL Instr. test part 2
Нету DIS-а :)

- VKAL - 11/03 TRAP test part 2 (30k+FIS)
Нету FIS-а :) а как запретить - пока непонял...

+ ZKMA - 11/03 Memory test (any PDP-11)




000003 000000 000000 000000
@L 177544
@E 177544 000000
@L 10000
@D 12706
@D 10000
........
@D 4715
@D 4715
@D 5007
@L 10000
@S
HX 2.2 XXDP Cold boot..


MEMORY MANAGEMENT UNIT NOT FOUND



BOOTING UP XXDP-SM SMALL MONITOR


XXDP-SM SMALL MONITOR - XXDP V2.6
REVISION: E0
BOOTED FROM HX0
28KW OF MEMORY
NON-UNIBUS SYSTEM

RESTART ADDRESS: 152010
TYPE "H" FOR HELP

.R VKAAA0
VKAAA0.BIC

END PASS
END PASS
END PASS
END PASS
END PASS
END PASS
END PASS
000003 000444 000530 000404
@L 152010
@S
.R VKAAC0
VKAAC0.BIC

END PASS
END PASS
END PASS
END PASS
END PASS
END PASS
END PASS
END PASS
END PASS
END PASS
000003 000142 000450 000102
@L 152010
@S
.R VKABA0
VKABA0.BIC

END PASS
END PASS
END PASS
END PASS
000003 000001 000574 000404
@L 152010
@S
.R VKABB0
VKABB0.BIC

END PASS
END PASS
END PASS
000003 077777 000600 000404
@L 152010
@L 177544
@D 100
@L 152010
@S
.R VKADC0
VKADC0.BIC

CVKADC0 LSI-11 TRAPS TEST

EIS/FIS OPTION NOT PRESENT
DIBOL INSTRUCTION SET NOT PRESENT

000003 012676 000500 012700
@L 177570
@E 177570 000100
@L 422
@D 100
@L 200
@S
CVKADC0 LSI-11 TRAPS TEST

EIS/FIS OPTION NOT PRESENT
DIBOL INSTRUCTION SET NOT PRESENT

END OF PASS
END OF PASS
END OF PASS
END OF PASS
END OF PASS
000003 012676 000474 012700
@L 152010
@S
.L VKADC1
VKADC1.BIC

.
000003 150754 154246 155662
@L 422
@D 100
@L 200
@S
CVKADC0 LSI-11 TRAPS TEST

EIS/FIS OPTION NOT PRESENT
DIBOL INSTRUCTION SET NOT PRESENT

END OF PASS
END OF PASS
END OF PASS
END OF PASS
000003 000000 000500 177777
@L 152010
@S
.R ZKMAF0
ZKMAF0.BIC

CZKMAF0
000000-037776
TST13 BNK 00
TST13 BNK 01
RELOC
TST13 BNK 00
PASS# 01
TST13 BNK 00
TST13 BNK 01
RELOC
TST13 BNK 00
PASS# 02
000003 010310 000476 040000
@L 177544
@E 177544 000100
@D 0
@L 200
@S
CZKMAF0
000000-157776
TST13 BNK 00
TST13 BNK 01
TST13 BNK 02
TST13 BNK 03
TST13 BNK 04
TST13 BNK 05
TST13 BNK 06
RELOC
TST13 BNK 00
PASS# 01
TST13 BNK 00
TST13 BNK 01
TST13 BNK 02
TST13 BNK 03
TST13 BNK 04
TST13 BNK 05
TST13 BNK 06
RELOC
TST13 BNK 00
PASS# 02
000003 010442 000476 160000
@L 10000
@D 12706
.....
@D 4715
@D 5007
@L 10000
@S
HX 2.2 XXDP Cold boot..


MEMORY MANAGEMENT UNIT NOT FOUND



BOOTING UP XXDP-SM SMALL MONITOR


XXDP-SM SMALL MONITOR - XXDP V2.6
REVISION: E0
BOOTED FROM HX0
28KW OF MEMORY
NON-UNIBUS SYSTEM

RESTART ADDRESS: 152010
TYPE "H" FOR HELP

.R ZKMAF1
ZKMAF1.BIC

CZKMAF1
000000-157776
TST13 BNK 00
TST13 BNK 01
TST13 BNK 02
TST13 BNK 03
TST13 BNK 04
TST13 BNK 05
TST13 BNK 06
RELOC
TST13 BNK 00
PASS# 01
TST13 BNK 00
TST13 BNK 01
TST13 BNK 02
TST13 BNK 03
TST13 BNK 04
TST13 BNK 05
TST13 BNK 06
RELOC
TST13 BNK 00
PASS# 02
TST13 BNK 00
TST13 BNK 01
TST13 BNK 02
TST13 BNK 03
TST13 BNK 04
TST13 BNK 05
TST13 BNK 06
RELOC
TST13 BNK 00
PASS# 03
000003 010442 000500 160000
@

Hunta
16.07.2021, 10:54
В коде много ссылок на конкретные модели процессоров.
Мне это не нравилось, не нравится и не будет нравится.
Поэтому сделал описатель фич и сделал описания для некоторого количества процессоров.
Цель - всё через описатель фич :)
Большая часть уже была удалена ранее, но некоторое количество ещё присутствует.

Вот, опять пристреливаю :)

Hunta
17.07.2021, 21:10
Некоторые успехи по работе из командной строки :) Могу прогнать всё то, что делаю из графики, кроме прошивки результата синтеза :) Осталось понять, как реализовать одну идейку с параметризацией - и мона будет гонять синтез всех вариантов проца по ночам :)

Hunta
20.07.2021, 21:22
Из занимательного.

PDP-2011, 100 МГц.

Исходный вариант (процессор PDP-11/94)



.RUN HX7:SPEED3

Тест быстродействия (кэш, если он есть, выключен)

....
R1(23456.)+R0(12345.) 1 050 393 оп./сек -> 4 752 094 оп./сек
....


Процессор с доработанным в/в (всё таки сделал, как хотел - с пятой примерно так попытки)



R1(23456.)+R0(12345.) 1 330 804 оп./сек -> 6 654 020 оп./сек


Подкрученный ДП и память



R1(23456.)+R0(12345.) 1 996 685 оп./сек -> 9 991 613 оп./сек


PDP-11/04 (ДП нет, но память подкручена) :)



R1(23456.)+R0(12345.) 3 698 027 оп./сек -> 14 224 410 оп./сек

Hunta
24.07.2021, 18:24
Простенько и со вкусом :)



000004 000000 000000 000000
@DL0
RT-11SB (S) V05.07

.R MSCPCK

.@T

.RUN HX7:SPEED0

Тест быстродействия (кэш, если он есть, выключен)

BR .+2 30 844 127 оп./сек
R0(23456.)+R0(12345.) empty 6 757 428 оп./сек
R1(23456.)+R0(12345.) 4 979 818 оп./сек -> 24 322 842 оп./сек
.SHOW CONFIGURATION

RT-11SB (S) V05.07
Booted from DL0:RT11SB

USR is set SWAP
EXIT is set SWAP
KMON is set NOIND
MODE is set NOSJ
TT is set NOQUIET
ERROR is set ERROR
SL is set OFF
EDIT is set KED
FORTRAN is set FORTRA
KMON nesting depth is 3
Global .SCCA flag is disabled

CLI is set DCL, CCL, UCL, NO UCF

PDP 11/15,20 Processor
56KB of memory
50 Hertz System Clock

Memory parity support
SB timer support
Global .SCCA support
FPU support
Extended unit support


.


Тот же тест на эмуляторе Патрона :) Сильно пляшет, это лучший вариант из примерно 10 прогонов :)



Тест быстродействия (кэш, если он есть, выключен)

BR .+2 29 022 332 оп./сек
R0(23456.)+R0(12345.) empty 9 809 270 оп./сек
R1(23456.)+R0(12345.) 4 468 840 оп./сек -> 8 208 338 оп./сек.
.

Hunta
26.07.2021, 10:49
Что "забыл" :) написать - это результат на тактовой для процессора - 200 МГц :)

Результат, увы, сильно не стабильный (если тронуть код - прошивка может не запуститься) и пока только для процов без ДП (точнее, смотрел только на PDP-11/04)

Так же пробовал память BRAM тактировать на 400 МГц :) Пару раз сумел загрузить RT-11 :)

Hunta
28.07.2021, 10:02
Из новостей :)
Надоело жать кнопку reset на DE10, поэтому добавил в терминальный модуль обработку сигнала break. Завёл его в процессор и пока обрабатываю как reset :)

Hunta
29.07.2021, 12:15
А сделать микро-ODT, как в Э-60 не выйдет? ДВК-шная Shadow-ODT, конечно, посложнее будет...
Прошло три года и чуть меньше трёх месяцев :)



FullODT for PDP-2011 halt mode (in development :))

>>>G
000004 000000 000000 000000
@DL0
RT-11SB (S) V05.07

.R MSCPCK

.
FullODT for PDP-2011 halt mode (in development :))

>>>P

.DIR

SWAP .SYS 28P 31-Oct-1998 RT11SB.SYS 99P 02-Oct-2020
RT11FB.SYS 107P 02-Oct-2020 RK .SYS 3P 02-Oct-2020
DL .SYS 5P 02-Oct-2020 DU .SYS 24P 02-Oct-2020
HX .SYS 6P 12-Sep-2020 ZA .SYS 4P 05-Jul-2020
ZB .SYS 4P 05-Jul-2020 ZC .SYS 4P 05-Jul-2020
ZD .SYS 4P 05-Jul-2020 ZE .SYS 4P 05-Jul-2020
ZF .SYS 4P 05-Jul-2020 WQ .SYS 4P 05-Jul-2020
WS .SYS 4P 05-Jul-2020 LD .SYS 11P 02-Oct-2020
VM .SYS 3P 02-Oct-2020 MU .SYS 14P 02-Oct-2020
NL .SYS 2P 02-Oct-2020 SL .SYS 17P 31-Oct-1998
RT11XM.SYS 124P 02-Oct-2020 RT11XB.SYS 115P 02-Oct-2020
RT11ZM.SYS 127P 02-Oct-2020 RT11ZB.SYS 118P 02-Oct-2020
RKX .SYS 3P 02-Oct-2020 DLX .SYS 5P 02-Oct-2020
DUX .SYS 27P 02-Oct-2020 HXX .SYS 6P 12-Sep-2020
ZAX .SYS 4P 05-Jul-2020 ZBX .SYS 4P 05-Jul-2020
ZCX .SYS 4P 05-Jul-2020 ZDX .SYS 4P 05-Jul-2020
ZEX .SYS 4P 05-Jul-2020 ZFX .SYS 4P 05-Jul-2020
WQX .SYS 4P 05-Jul-2020 WSX .SYS 4P 05-Jul-2020
LDX .SYS 11P 02-Oct-2020 VMX .SYS 3P 02-Oct-2020
MUX .SYS 19P 02-Oct-2020 NLX .SYS 2P 02-Oct-2020
SLX .SYS 20P 31-Oct-1998 NQX .SYS 10P 02-Oct-2020
PIP .SAV 30P 31-Oct-1998 DUP .SAV 52P 31-Oct-1998
DIR .SAV 20P 31-Oct-1998 IND .SAV 58P 31-Oct-1998
RESORC.SAV 35P 31-Oct-1998 EDIT .SAV 19P 31-Oct-1998
KED .SAV 85P 31-Oct-1998 KEX .SAV 72P 31-Oct-1998
MACRO .SAV 63P 31-Oct-1998 CREF .SAV 6P 31-Oct-1998
LINK .SAV 59P 31-Oct-1998 MONMRG.SAV 14P 31-Oct-1998
LIBR .SAV 24P 31-Oct-1998 FILEX .SAV 22P 31-Oct-1998
SRCCOM.SAV 26P 31-Oct-1998 BINCOM.SAV 25P 31-Oct-1998
SLP .SAV 13P 31-Oct-1998 DUMP .SAV 10P 31-Oct-1998
SIPP .SAV 21P 31-Oct-1998 BUP .SAV 68P 31-Oct-1998
PAT .SAV 11P 31-Oct-1998 HELP .SAV 161P 31-Oct-1998
SYSMAC.SML 92P 31-Oct-1998 SYSLIB.OBJ 84P 31-Oct-1998
FORMAT.SAV 28P 31-Oct-1998 SETUP .SAV 43P 31-Oct-1998
VTCOM .SAV 24P 31-Oct-1998 DATIME.SAV 4P 31-Oct-1998
DATIME.MAC 23P 31-Oct-1998 DATIME.COM 3P 31-Oct-1998
LET .SAV 6P 31-Oct-1998 SPLIT .SAV 3P 31-Oct-1998
UCL .SAV 16P 31-Oct-1998 VBGEXE.SAV 18P 31-Oct-1998
TERMID.SAV 4P 31-Oct-1998 TRANSF.SAV 16P 31-Oct-1998
TRANSF.TSK 76P 31-Oct-1998 TRANSF.EXE 45P 31-Oct-1998
ODT .OBJ 8P 31-Oct-1998 VDT .OBJ 8P 31-Oct-1998
MDUP .SAV 22P 31-Oct-1998 MBOOT .BOT 1P 31-Oct-1998
MBOT16.BOT 1P 31-Oct-1998 MSBOOT.BOT 4P 31-Oct-1998
MDUP .AI 72P 31-Oct-1998 MDUP .MM 72P 31-Oct-1998
MDUP .MS 72P
FullODT for PDP-2011 halt mode (in development :))

>>>P 31-Oct-1998 MDUP .MT 72P 31-Oct-1998
MDUP .MU 72P 31-Oct-1998 VERIFY.COM 2P 31-Oct-1998
IVP .COM 16P 31-Oct-1998 IVP .MAC 33P 31-Oct-1998
MTB .COM 16P 31-Oct-1998 MSB .COM 16P 31-Oct-1998
MUB .COM 16P 31-Oct-1998 SB .MAC 1P 31-Oct-1998
FB .MAC 1P 31-Oct-1998 XM .MAC 1P 31-Oct-1998
XB .MAC 1P 31-Oct-1998 ZM .MAC 1P 31-Oct-1998
ZB .MAC 1P 31-Oct-1998 SYSTEM.MLB 148P 31-Oct-1998
EDTL .MLB 11P 31-Oct-1998 SYSGEN.COM 286P 31-Oct-1998
CONFIG.COM 29P 31-Oct-1998 CONFIG.SAV 10P 31-Oct-1998
V5USER.TXT 2P 31-Oct-1998 V5NOTE.TXT 36P 31-Oct-1998
CUSTOM.TXT 14P 31-Oct-1998 MSCPCK.SAV 4P 31-Oct-1998
DBGSYM.SAV 10P 31-Oct-1998 INDEX .SAV 11P 31-Oct-1998
INDEXX.SAV 14P 31-Oct-1998 INDEXA.IMG 164P 31-Oct-1998
INDEXB.IMG 165P 31-Oct-1998 INDEX .IDX 7P 31-Oct-1998
TECO .SAV 50P 31-Oct-1998 SGN02 .CND 5P 02-Oct-2020
SGN02 .ANS 9P 02-Oct-2020 SGN02 .BLD 3P 02-Oct-2020
SGN02 .MON 10P 02-Oct-2020 SGN02 .DEV 6P 02-Oct-2020
SGN02 .TBL 5P 02-Oct-2020 RT11SB.MAP 34P 02-Oct-2020
RT11FB.MAP 35P 02-Oct-2020 RT11XM.MAP 38P 02-Oct-2020
RT11XB.MAP 36P 02-Oct-2020 RT11ZM.MAP 38P 02-Oct-2020
RT11ZB.MAP 36P 02-Oct-2020 STRTSB.COM 1P 31-Oct-1998
STRTFB.COM 5P 31-Oct-1998 STRTXM.COM 8P 31-Oct-1998
STRTXB.COM 5P 31-Oct-1998 STRTZM.COM 8P 31-Oct-1998
STRTZB.COM 5P 31-Oct-1998 TEST .MAC 1 12-Apr-2020
DESS .SAV 20 04-Nov-1993 DL2 .DSK 4500P
HX .COM 1 T .COM 1
HXNL .COM 1
143 Files, 8633 Blocks
11749 Free blocks

.DIR

SWAP .SYS 28P 31-Oct-1998 RT11SB.SYS 99P 02-Oct-2020
RT11FB.SYS 107P 02-Oct-2020 RK .SYS 3P 02-Oct-2020
DL .SYS 5P 02-Oct-2020 DU .SYS 24P 02-Oct-2020
HX .SYS 6P 12-Sep-2020 ZA .SYS 4P 05-Jul-2020
ZB .SYS 4P 05-Jul-2020 ZC .SYS 4P 05-Jul-2020
ZD .SYS 4P 05-Jul-2020 ZE .SYS 4P 05-Jul-2020
ZF .SYS 4P 05-Jul-2020 WQ .SYS 4P 05-Jul-2020
WS .SYS 4P 05-Jul-2020 LD .SYS 11P 02-Oct-2020
VM .SYS 3P 02-Oct-2020 MU .SYS 14P 02-Oct-2020
NL .SYS 2P 02-Oct-2020 SL .SYS 17P 31-Oct-1998
RT11XM.SYS 124P 02-Oct-2020 RT11XB.SYS 115P 02-Oct-2020
RT11ZM.SYS 127P 02-Oct-2020 RT11ZB.SYS 118P 02-Oct-2020
RKX .SYS 3P 02-Oct-2020 DLX .SYS 5P 02-Oct-2020
DUX .SYS 27P 02-Oct-2020 HXX .SYS 6P 12-Sep-2020
ZAX .SYS 4P 05-Jul-2020 ZBX .SYS 4P 05-Jul-2020
ZCX .SYS 4P 05-Jul-2020 ZDX .SYS 4P 05-Jul-2020
ZEX .SYS 4P 05-Jul-2020 ZFX .SYS 4P 05-Jul-2020
WQX .SYS 4P 05-Jul-2020 WSX .SYS 4P 05-Jul-2020
LDX .SYS 11P 02-Oct-2020 VMX .SYS 3P 02-Oct-2020
MUX .SYS 19P 02-Oct-2020 NLX .SYS 2P 02-Oct-2020
SLX .SYS 20P 31-Oct-1998 NQX .SYS 10P 02-Oct-2020
PIP .SAV 30P 31-Oct-1998 DUP .SAV 52P 31-Oct-1998
DIR .SAV 20P 31-Oct-1998 IND .SAV 58P 31-Oct-1998
RESORC.SAV 35P 31-Oct-1998 EDIT .SAV 19P 31-Oct-1998
KED .SAV 85P 31-Oct-1998 KEX .SAV 72P 31-Oct-1998
MACRO .SAV 63P 31-Oct-1998 CREF .SAV 6P 31-Oct-1998
LINK .SAV 59P 31-Oct-1998 MONMRG.SAV 14P 31-Oct-1998
LIBR .SAV 24P 31-Oct-1998 FILEX .SAV 22P 31-Oct-1998
SRCCOM.SAV 26P 31-Oct-1998 BINCOM.SAV 25P 31-Oct-1998
SLP .SAV 13P 31-Oct-1998 DUMP .SAV 10P 31-Oct-1998
SIPP .SAV 21P 31-Oct-1998 BUP .SAV 68P 31-Oct-1998
PAT .SAV 11P 31-Oct-1998 HELP .SAV 161P 31-Oct-1998
SYSMAC.SML 92P 31-Oct-1998 SYSLIB.OBJ 84P 31-Oct-1998
FORMAT.SAV 28P 31-Oct-1998 SETUP .SAV 43P 31-Oct-1998
VTCOM .SAV 24P 31-Oct-1998 DATIME.SAV 4P 31-Oct-1998
DATIME.MAC 23P 31-Oct-1998 DATIME.COM 3P 31-Oct-1998
LET .SAV 6P 31-Oct-1998 SPLIT .SAV 3P 31-Oct-1998
UCL .SAV 16P 31-Oct-1998 VBGEXE.SAV 18P 31-Oct-1998
TERMID.SAV 4P 31-Oct-1998 TRANSF.SAV 16P 31-Oct-1998
TRANSF.TSK 76P 31-Oct-1998 TRANSF.EXE 45P 31-Oct-1998
ODT .OBJ 8P 31-Oct-1998 VDT .OBJ 8P 31-Oct-1998
MDUP .SAV 22P 31-Oct-1998 MBOOT .BOT 1P 31-Oct-1998
FullODT for PDP-2011 halt mode (in development :))

>>> <----- здесь я нажал BREAK
MBOT16.BOT 1P 31-Oct-1998 MSBOOT.BOT 4P 31-Oct-1998
MDUP .AI 72P 31-Oct-1998 MDUP .MM 72P 31-Oct-1998
MDUP .MS 72P 31-Oct-1998 MDUP .MT 72P 31-Oct-1998
MDUP .MU 72P 31-Oct-1998 VERIFY.COM 2P 31-Oct-1998
IVP .COM 16P 31-Oct-1998 IVP .MAC 33P 31-Oct-1998
MTB .COM 16P 31-Oct-1998 MSB .COM 16P 31-Oct-1998
MUB .COM 16P 31-Oct-1998 SB .MAC 1P 31-Oct-1998
FB .MAC 1P 31-Oct-1998 XM .MAC 1P 31-Oct-1998
XB .MAC 1P 31-Oct-1998 ZM .MAC 1P 31-Oct-1998
ZB .MAC 1P 31-Oct-1998 SYSTEM.MLB 148P 31-Oct-1998
EDTL .MLB 11P 31-Oct-1998 SYSGEN.COM 286P 31-Oct-1998
CONFIG.COM 29P 31-Oct-1998 CONFIG.SAV 10P 31-Oct-1998
V5USER.TXT 2P 31-Oct-1998 V5NOTE.TXT 36P 31-Oct-1998
CUSTOM.TXT 14P 31-Oct-1998 MSCPCK.SAV 4P 31-Oct-1998
DBGSYM.SAV 10P 31-Oct-1998 INDEX .SAV 11P 31-Oct-1998
INDEXX.SAV 14P 31-Oct-1998 INDEXA.IMG 164P 31-Oct-1998
INDEXB.IMG 165P 31-Oct-1998 INDEX .IDX 7P 31-Oct-1998
TECO .SAV 50P 31-Oct-1998 SGN02 .CND 5P 02-Oct-2020
SGN02 .ANS 9P 02-Oct-2020 SGN02 .BLD 3P 02-Oct-2020
SGN02 .MON 10P 02-Oct-2020 SGN02 .DEV 6P 02-Oct-2020
SGN02 .TBL 5P 02-Oct-2020 RT11SB.MAP 34P 02-Oct-2020
RT11FB.MAP 35P 02-Oct-2020 RT11XM.MAP 38P 02-Oct-2020
RT11XB.MAP 36P 02-Oct-2020 RT11ZM.MAP 38P 02-Oct-2020
RT11ZB.MAP 36P 02-Oct-2020 STRTSB.COM 1P 31-Oct-1998
STRTFB.COM 5P 31-Oct-1998 STRTXM.COM 8P 31-Oct-1998
STRTXB.COM 5P 31-Oct-1998 STRTZM.COM 8P 31-Oct-1998
STRTZB.COM 5P 31-Oct-1998 TEST .MAC 1 12-Apr-2020
DESS .SAV 20 04-Nov-1993 DL2 .DSK 4500P
HX .COM 1 T .COM 1
HXNL .COM 1
143 Files, 8633 Blocks
11749 Free blocks

.


Вход - BREAK или HALT, выход - команды G или P (пока отличий нет), BREAK или HALT (в режиме HALT)

Hunta
29.07.2021, 20:19
PDP-11/04 (PDP-2011 based) FullODT for halt mode (in development :))

>>>P
000004 000000 000000 000000
@
@DL0
RT-11SB (S) V05.07

.R MSCPCK

.
>>>P

.

Hunta
29.07.2021, 22:56
PDP-11/04 (PDP-2011 based) FullODT for halt mode (in development :))

>>>R
R0=000004 R1=000000 R2=000000 R3=000000 R4=000000 R5=000000 SP=000000
>>>G
000004 000000 000000 000000
@DL0
RT-11SB (S) V05.07

.R MSCPCK

.
>>>R
R0=000042 R1=135570 R2=135552 R3=040000 R4=000200 R5=135552 SP=155654
>>>
>>>R
R0=001154 R1=135570 R2=135552 R3=040000 R4=000000 R5=001162 SP=000774
>>>G
001154 000000 000774 001162
@

Hunta
30.07.2021, 18:52
PDP-11/44 (PDP-2011 based) FullODT for halt mode (in development :))

>>>G
000054 000000 000000 000000
@DL2


RSX-11M-PLUS V4.6 BL87 256.KW System:"DE10 "
>RED DL2:=SY:
>RED DL2:=LB:
>RED DL2:=SP:
>MOU DL2:"RSX11MPBL87"
>@DL2:[1,2]STARTUP
>; PLEASE NOTE
>;
>; If you have not yet read the system release notes, please do so
>; now before attempting to perform a SYSGEN or to utilize the new
>; features of this system.
>;
>;
>* Please enter time and date (HH:MM DD-MMM-YYYY) [S]: 18:48 30-JUL-2021
>TIME 18:48 30-JUL-2021
>ACS SY:/BLKS=1024.
>CON ONLINE ALL
>@ <EOF>
>
>>>R
R0=160607 R1=001410 R2=120000 R3=000000 R4=000001 R5=000000 SP=001310
>>>P
>


- - - Добавлено - - -

Исправил мелкую ошибку при выполнении HALT. Результат:



PDP-11/44 (PDP-2011 based) FullODT for halt mode (in development :))

>>>G
000054 000000 000000 000000
@DL2


RSX-11M-PLUS V4.6 BL87 256.KW System:"DE10 "
>RED DL2:=SY:
>RED DL2:=LB:
>RED DL2:=SP:
>MOU DL2:"RSX11MPBL87"
>@DL2:[1,2]STARTUP
>; PLEASE NOTE
>;
>; If you have not yet read the system release notes, please do so
>; now before attempting to perform a SYSGEN or to utilize the new
>; features of this system.
>;
>;
>* Please enter time and date (HH:MM DD-MMM-YYYY) [S]: 19:30 30-JUL-2021
>TIME 19:30 30-JUL-2021
>ACS SY:/BLKS=1024.
>CON ONLINE ALL
>@ <EOF>
>@T
>CON DISPL ATTR FOR SYS
SYS
PDP-11/44, EIS,UNIBUS_Map,D-Space,SWR,Cache,FPP,
Clock=KW11-L, $TKPS=50., $TTPRM=000002, Cache_control=000001
>MOU DL3:/for
>INS $BRU
>TIM
19:30:03 30-JUL-2021
>BRU/INI/VER/MOU LB: DL3:
>>>

>
>>>R
R0=141703 R1=001410 R2=120000 R3=000000 R4=000001 R5=000000 SP=001310
>>>
>>>R
R0=074036 R1=001410 R2=120000 R3=000000 R4=000001 R5=000000 SP=001310
>>>
>
BRU - Starting verify pass

>>>R
R0=141703 R1=001410 R2=120000 R3=000000 R4=000001 R5=000000 SP=001310
>>>
>
BRU - Completed

>TIM
19:34:02 30-JUL-2021
>RUN SHUTUP
>@ <EOF>
>

RSX-11M-PLUS Shut down program

Enter minutes to wait before shutdown:
>>>R
R0=160607 R1=001410 R2=120000 R3=000000 R4=000001 R5=000000 SP=001310
>>>P
Reason for shutdown (<CR> for none):
OK to shutdown? [Y/N]: Y
All further logins are disabled

30-JUL-2021 19:34 System is now shutting down -- DE10

@LB:[1,2]SHUTUP
>VCP DISCONNECT /ALL
>@ <EOF>
>
ACS DL2:/BLKS=0.
ACS -- Checkpoint file now inactive
>
DMO DL2:/DEV/LOCK=V
DMO -- System disk being dismounted
DMO -- SYSTEM dismounted from DL2: *** Final dismount initiated ***
19:34:22 *** DL2: -- Dismount complete
>
DMO DL3:/DEV/LOCK=V
19:34:27 *** DL3: -- Dismount complete
DMO -- TT0: dismounted from DL3: *** Final dismount initiated ***
>
SHUTUP operation complete

>>>P <----- выходе в HALT mode при выполнении HALT. Нажатие P (продолжить работу) - как нажатие кнопки продолжить с пульта - RSX продолжит работу
Logins are now enabled
>
>

Hunta
31.07.2021, 23:09
Ещё некоторые шаги :)



PDP-11/04 (PDP-2011 based) FullODT for halt mode (in development :))

>>>R
R0=000004 R1=000000 R2=000000 R3=000000 R4=000000 R5=000000
SP=000000 PC=165020 PS=000340
>>>S
R0=000004 R1=000000 R2=000000 R3=000000 R4=000000 R5=000000
SP=000000 PC=165022 PS=000344
>>>S
R0=000004 R1=000000 R2=000000 R3=000001 R4=000000 R5=000000
SP=000000 PC=165024 PS=000340
>>>S
R0=000004 R1=000000 R2=000000 R3=177776 R4=000000 R5=000000
SP=000000 PC=165026 PS=000351
>>>S
R0=000004 R1=000000 R2=000000 R3=177777 R4=000000 R5=000000
SP=000000 PC=165030 PS=000352
>>>S
R0=000004 R1=000000 R2=000000 R3=177776 R4=000000 R5=000000
SP=000000 PC=165032 PS=000351
>>>S
R0=000004 R1=000000 R2=000000 R3=177777 R4=000000 R5=000000
SP=000000 PC=165034 PS=000352
>>>P
000004 000000 000000 000000
@DL0
RT-11SB (S) V05.07

.R MSCPCK

.
>>>S
R0=000042 R1=135570 R2=135552 R3=040000 R4=000200 R5=135552
SP=155650 PC=151362 PS=000341
>>>S
R0=000042 R1=135570 R2=135552 R3=040000 R4=000200 R5=135552
SP=155650 PC=151366 PS=000341
>>>S
R0=000042 R1=135570 R2=135552 R3=040000 R4=000200 R5=135552
SP=155650 PC=151372 PS=000344
>>>S
R0=000042 R1=135570 R2=135552 R3=040000 R4=000200 R5=135552
SP=155650 PC=151360 PS=000344
>>>P

.

Hunta
03.08.2021, 19:48
Unibus Mapping, тест для PDP-11/44



PDP-11/44 (PDP-2011 based) FullODT for halt mode (in development :))

>>>G
000054 000000 000000 000000
@DL0
RT-11SB (S) V05.07

.R MSCPCK

.@HX

.BOO/FOR HX:

HX 2.2 XXDP Cold boot..



BOOTING UP XXDP-XM EXTENDED MONITOR


XXDP-XM EXTENDED MONITOR - XXDP V2.5
REVISION: F0
BOOTED FROM HX0
124KW OF MEMORY
UNIBUS SYSTEM

RESTART ADDRESS: 152000
TYPE "H" FOR HELP !

.R KKUAE0
KKUAE0.BIC
CKKUAE 11/24/44 UBI MAP
DIAGNOSTIC HAS DETERMINED THAT CPU IS AN 11/44

END PASS # 1

END PASS # 2

END PASS # 3

END PASS # 4

END PASS # 5

END PASS # 6

END PASS # 7

END PASS # 8

END PASS # 9

END PASS # 10

Hunta
03.08.2021, 22:05
Перенёс на первую страницу результаты тестирования и слегка обновил. Нашёл, в частности, ошибку, из за которой на F11 (PDP-11/23 и PDP-11/24) определялось только 248 вместо 512 кб. Дурацкая ошибка - не отметил в описании доступность для F11 регистра SR3.

Hunta
05.08.2021, 10:14
Добавил флажки (пока три, но сколько понадобится - пока не понятно) для описания тонких отличий процессоров PDP-11 (типа - что будет по адресу, на который указывает R0, после выполнения команды MOV R0,(R0)+)

Для тестирования (и доводки) этого механизма под раздачу попал F11 (ака PDP-11/23 PDP-11/24) - так как не проходил свой тест JKDB??.

В принципе - это реализовано в последних версиях авторской PDP-2011, но я начал переделывать его код, оттолкнувшись от версии далёкого 2015 года, где этого ещё не было, так что в какой то степени (по результату, но не по реализации) это перенос кода :)

ra3qdp
05.08.2021, 11:08
добавил в терминальный модуль обработку сигнала break. Завёл его в процессор и пока обрабатываю как reset
может сделаете, как в UNIBUS-машинах L, D, E, S (листинги имеются) ?

Hunta
05.08.2021, 11:15
может сделаете, как в UNIBUS-машинах L, D, E, S (листинги имеются) ?
Если речь о FullODT - не планируется
Если речь о варианте процессора без FullODT - см первоисточник и видим, что автор PDP-2011 уже сделал этот вариант в своих ПЗУ

ra3qdp
05.08.2021, 12:09
FullODT
FullODT это что ? чем отличается от ODT ?

Hunta
05.08.2021, 14:49
FullODT это что ? чем отличается от ODT ?

Поднять глаза выше - не судьба

https://zx-pk.ru/threads/28952-pdp-11-na-fpga.html?p=1125707&viewfull=1#post1125707

Hunta
06.08.2021, 12:53
PDP-11/23 PDP-11/24 - проходят тесты JKDA?? (ДП) и JKDB?? (проц, пара моментов поправлены)

Hunta
06.08.2021, 19:48
С программированием из командной строки разобрался.
Развлекаюсь с FullODT, цепочка такая - получить листинг MACRO-11, из листинга получить mif файл, mif файлом обновить прошивку, прошить в девайс

ra3qdp
06.08.2021, 22:43
листинг MACRO-11
поделитесь ?

Hunta
06.08.2021, 22:58
поделитесь ?
Чем?

Hunta
07.08.2021, 14:15
Добавил аналог регистров PAR для halt режима. Пока только для процов с ДП, но для процов без ДП будет проще, так как не надо вмешиваться в работу ДП :) Но и c ДП, как оказалось, я себе жизнь сильно облегчил, хотя на тот момент у меня мысль мелькнула о режиме Halt мелькнула и пропала. Да и сделал я по другому, по сравнению с мелькнувшей мыслью :) Но задел весьма пригодился :)

Hunta
07.08.2021, 18:56
Вкратце :)



PDP-11/44 (256KW) (PDP-2011 based) FullODT for halt mode (in development :))

>>>

Hunta
07.08.2021, 23:54
Тоже вкратце. И пока - проверка концепта, поэтому - только с HX, только с HX0 и только на проце с ДП :)



PDP-11/44 (256KW) (PDP-2011 based) FullODT for halt mode (in development :))

>>>B
HX 2.2 XXDP Cold boot..



BOOTING UP XXDP-XM EXTENDED MONITOR


XXDP-XM EXTENDED MONITOR - XXDP V2.5
REVISION: F0
BOOTED FROM HX0
124KW OF MEMORY
UNIBUS SYSTEM

RESTART ADDRESS: 152000
TYPE "H" FOR HELP !

.