Эмуляторы PDP-11 и не только

Ax0n
Вячеслав_Старухин:

Я в своё время 14 лет занимался именно эмуляторами ( вычислительных комплексов Эльбрус-1 и Эльбрус-2 ).

Это круто, в свое время наслышан был об Эльбрусах, но имел дело с Каратами и Агатами

Вячеслав_Старухин:

Для истории важны идеи, мысли или хотя бы объекты, которые можно увидеть и почувствовать непосредственно, а не конкретные старые программы.

Без базового набора софта не оживить железо(ДВК),

Вячеслав_Старухин:

Поэтому ваши диски никому не нужны, как никому не нужен был бы действующий заряд к старому, представляющему большой интерес для истории, ружью. Стрелять из него уже не интересно и даже вредно.

А вот здесь Вы в корне неправы. В этом музее любой желающий может сесть за старый ПК и оценить(кто-то и вспомнить) как это было. Молодежь с руками и головой приходит туда и с увлечением занимается оживлением этого железа.
Лучше было бы чтобы они пили пиво в подворотнях?

Вячеслав_Старухин
Ax0n:

Лучше было бы чтобы они пили пиво в подворотнях?

Нет, конечно.

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

Потому что ЭВМ советского периода были сданы на переработку, так как содержали много золота и серебра.

Ax0n
Вячеслав_Старухин:

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

Это само собой. Я только откликнувшийся на просьбу помочь музею.

Вячеслав_Старухин:

Потому что ЭВМ советского периода были сданы на переработку, так как содержали много золота и серебра.

Это верно, но кое что осталось. Чем смог, помогаю. Нашел кое что от УКНЦ, буду отправлять. В свое время 2 модели Спектрума наш завод выпускал, а я причастен к проектированию по ним. И на ДВК + собственный вычислительно-измерительный комплекс на 1500 серии измериловку делали для производства микросхем

Вячеслав_Старухин
Ax0n:

на 1500 серии измериловку делали

Во времена дефицита мне тоже пришлось сделать частотомер на том, что было на работе, а именно частично на токовых ключах 100-й серии, которые я позаимствовал из расходных для Эльбруса-2 .

AlexSr:

Форматы (даже порядок байтов) другой на этих системах

С порядком байтов в моей памяти связана одна смешная история.

Порядок байтов на PDP-11 как раз такой, как на современных PC, то есть наоборот с точки зрения разработчиков машин в ИТМ и ВТ.
В БЭСМ-6 и Эльбрусах он другой, так же как и в современных Sparc-ах.

Так вот, в те далёкие времена один небольшой коллектив инженеров в ИТМ и ВТ, временно не будучи занят в серьёзном проекте, взял и сделал ( не на коленке, а на Загорском заводе ) почти копию ( по системе команд ) PDP-11, только гораздо быстрее, для применения в качестве универсального инженерного пульта в многопроцессорном комплексе Эльбрус.

Попросили моего начальника, Б.А.Бабаяна, как обычно, стать главным конструктором матобеспечения.
Ну, а так как машинка крошечная, почти игрушка, Бабаян велел этим заняться мне, поехать в НИИАА, записать там на магнитные ленты только-только входящую в моду операционную систему UNIX для PDP-11 и установить на новую машинку.

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

Машинку выкинули 😈
Ни одной программы, кроме отладочных в кодах, на ней так и не исполнили.
И всё из-за неправильного порядка байтов 😃

Инженеры по привычке даже не подумали, что может быть наоборот от естественно верного для них 😁

Ax0n
Вячеслав_Старухин:

Во времена дефицита мне тоже пришлось сделать частотомер на том, что было на работе,

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

lelik

Разберемся в обратном порядке. Образ диска - тупо скопированные в файл физические сектора носителя. Чтобы получить образ не нужно добираться до содержимого, главное - возможность прочесть носитель блок за блоком. Обратный процесс (запись образа на дискету) так же возможен. Для этого нужен дисковод соответствующего размера и программка типа юниксового dd. Вторая задача - извлечь информацию с носителя. Это невозможно без знания ОС, под которой была записана система (для УКНЦ и ДВК с вероятностью 99% это RT-11 или ее клоны типа РАФОС. Про спектрумы не скажу, они ничего общего с PDP/LSI-11 не имеют). На сайте www.felixl.com/Uknc раздают эмулятор УКНЦ, в состав которого входит утилитка rt11dsk, обеспечивающая доступ к файлам. Также в природе существует драйвер файловой системы RT-11 для MSDOS. Про возможности и работоспособность этих программ не скажу ничего, надо пробовать.

Ax0n
lelik:

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

Именно это и требуется. Затем этот образ может расшифровать эмулятор. Но проблема пока в том, что я не могу его прочесть из среды ДОС.
Правда советы здесь дельные были, но пока я не воспользовался ими, много другой срочной работы.

lelik:

в состав которого входит утилитка rt11dsk, обеспечивающая доступ к файлам.

Эта утилитка работает с образами дисков, а не напрямую с носителями. Задача в том и состоит получить образ диска с носителя, неважно, что на нем хранится, дальше уже эмулятор работает.

lelik
Ax0n:

Но проблема пока в том, что я не могу его прочесть из среды ДОС.

DOS пытается дать вам доступ к содержимому. Возьмите dd по ссылке и

dd if=\\.\a: of=c:\temp\disk1.img bs=512

Ax0n
lelik:

dd if=\\.\a: of=c:\temp\disk1.img bs=512

Спасибо, сейчас попробую.

AlexSr
Вячеслав_Старухин:

Потому что ЭВМ советского периода были сданы на переработку, так как содержали много золота и серебра.

Ага … одно поле в Эл.100И чего стоило.
Я на “протирку” такой фигни по 25л в месяц получал на нашу лабораторию. Было чем встретить праздники.😅

Порядок байтов на PDP-11 как раз такой, как на современных PC, то есть наоборот с точки зрения разработчиков машин в ИТМ и ВТ.

Врать не буду, давно это было. Но попытки наоборот - читать IBM коды из ПЗУ на ДВК давали явно обратный порядок. То же и с лентой записаной на ЕС и читаемой на Эл.125. (из за этого, что бы распечатать Стругацких, пришлось на Паскале “драйвер” ленты писать и печатать потом на “Консуле” 😂)
Хотя ещё раз - может я что и путаю. 😃

Вячеслав_Старухин
AlexSr:

Врать не буду, давно это было

Без профессиональной привычки это запомнить трудно.

“Little Endian” значит, что младший байт записывается по младшему адресу в памяти.
Например, если в регистре 4 байта выглядят так Byte3 Byte2 Byte1 Byte0
То в памяти они записаны так:
Base Address+0 Byte0 Base Address+1 Byte1 Base Address+2 Byte2 Base Address+3 Byte3

Intel процессоры семейства x86 и PDP-11 в 16-тиразрядном варианте используют “Little Endian” .
-----------------------------------------

“Big Endian” значит, что старший байт записывается по младшему адресу в памяти.
Например, если в регистре 4 байта выглядят так Byte3 Byte2 Byte1 Byte0
То в памяти они записаны так:
Base Address+0 Byte3 Base Address+1 Byte2 Base Address+2 Byte1 Base Address+3 Byte0

процессоры Motorola, используемые в Mac, SPARC, Эльбрус используют “Big Endian”.

То есть в случае Big Endian порядок байтов в памяти выглядит естественно, как в регистре ( или на бумаге ), а в случае Little Endian в памяти порядок байтов противоположен порядку байтов в регистре.

Связано это с тем, что исторически у большинства машин с порядком Little Endian разрядность байтов в слове наращивалась ( 8 разрядов, потом стало 16, потом 32, потом 64 ), поэтому для совместимости считывания байтов в регистры процессора был использован такой перевёрнутый вариант. То есть для обращения за словом из 1 байта, или 2-х, 4-х или 8-ми адрес в памяти один и тот же.

А Эльбрус, например, сразу был 64-разрядной машиной, поэтому не нужно было заботиться ни о какой совместимости с малоразрядными предками и переворачивать байты задом наперёд, из памяти считалось сразу 8 байтов ( даже больше, 9 байтов, потому что было ещё 6 разрядов тега и 2 аппаратных разряда) и никак не меньше.

Mick
Вячеслав_Старухин:

Для истории важны идеи, мысли или хотя бы объекты, которые можно увидеть и почувствовать непосредственно, а не конкретные старые программы.

Наверное, что важно для истории, каждый решает по-своему. В том числе, и музей компьютерной техники. А мне бы очень понравилось посетить такой музей, сесть за ядовито-зеленый или рыжий (цвет экрана) алфавито-цифровой дисплей и сыграть , например, в тетрис. Или портрет Моны Лизы и Альберта Эйнштейна распечатать в формате “крестиков ноликов”.
А вот как ОС (или ее эмулятор, что еще хуже) может работать с образом диска, я не понимаю. По существу, образ - своеобразный архив, который создается и открывается определенным приложением. Другие приложения получают доступ не к образу, а к диску. Поясните пошаговый алгоритм по переносу данных с дискет на современный жесткий диск и дальнейшей работы с ними. Например, как прочесть “старый” текстовый файл?

Вячеслав_Старухин

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

Часто эмуляторы работают не с реальными устройствами, а с их моделями в виде файлов. Тогда всё просто - нужно всего лишь записать имеющиеся данные в файл в нужном формате.

Иногда с реальными устройствами, тогда всё гораздо сложнее.
У меня однажды была ситуация, когда с реальным устройством ( магнитным барабаном), на котором был записан код операционной системы, одновременно работал и мой эмулятор, развёрнутый на предшествующей модели ЭВМ ( Эльбрус-1), и реальная тогда ещё только-только отлаживаемая, машина Эльбрус-2.
Инженеры даже удивились, как это работало без всякой синхронизации.
Барабан был подключён сразу к двум процессорам ввода-вывода, входящих в разные вычислительные комплексы.
Но работало, хотя такая цель не ставилась специально, а сложилась по жизни,просто одни и те же коды понадобились сразу всем. Скорее всего запросы в этот период времени физически шли довольно редко.

korsh

Когда-то встречал в нете утилиту лдя записи TR-DOS дисков в ПК.
Подключался обычный флопешник к ПК (не помню 5,25 или 3,5).
Утилита была под DOS (вроде) - лет 10 назад было, уже не помню.
попробуйте полазить по сайтам по теме “эмулятор TR-DOS, Speccy, ZX Spectrum” связаться с их авторами. В России штук 5 сайтов точно.
типа того trd.speccy.cz

P.S. Ностальгия блин…

Mick
Вячеслав_Старухин:

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

Уточните, что именно программно реализуется легко и просто.
Про модели в виде файлов готов согласиться, но образ - это другое. Это конкретный продукт конкретного приложения. Попробуйте в Windows поработать с образом, минуя приложение, которое его создало.
А если более теоретически, вспомните 7-уровневую модель ИТ, которая описывает все от приложений пользователя (самый верхний уровень) до физического уровня (типа какой кабель). Уровни модели могут взаимодействовать только с соседними (редко через один). А здесь предпринимается безуспешная попытка резких прыжков, минуя уровни. Даже конфигурацию байтов вспомнили, и возможности аппаратной реализации (упонимались серии микросхем и т.д.). Уверен на 100%, что с таким подходом задача, сформулированная ТС, решена не будет.
Буду рад, если реально докажите обратное.
В этой ситуации есть стандартное решение - сеть, в которой все компьютеры “понимают” друг друга, т.е. видят другого,как себя, независимо от типа ОС.
Любая другая попытка решить поставленную задачу неизбежно приведет к точно такому же выводу - созданию “общего” языка, который давно уже создан.
Прошу прощения за многословие…

Mick:

Или портрет Моны Лизы и Альберта Эйнштейна распечатать в формате “крестиков ноликов”.

По-прежнему, актуально:

rcopen.com/forum/f6/topic34920/1944

AlexSr
Mick:

Про модели в виде файлов готов согласиться, но образ - это другое. Это конкретный продукт конкретного приложения. Попробуйте в Windows поработать с образом, минуя приложение, которое его создало.

Вы всё время пытаетесь (умозрительно) использовать средства операционной ситемы.
Ну какая разница, что записано в файл? Это всего лишь просто последовательность битов (или байтов, или “слов”…).
А как интерпретировать в приложении эту информацию - это зависит только от самого приложения. И образ диска - точно такой же файл, ничем не отличающийся от прочих.
Операционная система предоставляет вам доступ к своей файловой подсистеме ввода/вывода. Не более того. Что туда записать и как это использовать - зависит только от Вашей фантазии.
Хоть текст в КОИ, хоть программу PDP, хоть битовое изображение.

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

Вячеслав_Старухин:

“Little Endian” значит, что младший байт записывается по младшему адресу в памяти.

То, что так было в Дековских клонах - помню прекрасно. А вот в IBM совместимых …
Я даже не удосужился “выучить” шестнадцатиричную систему счисления. Дальше восьми - ну никак! 😂

Mick
AlexSr:

А как интерпретировать в приложении эту информацию - это зависит только от самого приложения.

Именно об этом я и говорю. А где они, приложения? А говорю я не умозрительно, а соответствии с современными стандартами по ИТ и многолетним опытом пратической работы. Вы можете сколько угодно рассуждать о древних PC, но убедить меня сможете только получив конкретное решение задачи, озвученной ТС. Давайте результат, и тогда обсудим, как он был достигнут.
По-моему, для решения задачи знание ***-ричных систем не требуется, иначе будете изобретать “слонов”, начиная с аппратной части и кончая ее низкоуровневым программированием. В результате, Вы наверное получите что-то типа USB или доморощенных протоколов LAN. Путь объединения двух ОС давно найден и очевиден - сеть.

yantsen
Mick:

А вот как ОС (или ее эмулятор, что еще хуже) может работать с образом диска, я не понимаю. По существу, образ - своеобразный архив, который создается и открывается определенным приложением. Другие приложения получают доступ не к образу, а к диску. Поясните пошаговый алгоритм по переносу данных с дискет на современный жесткий диск и дальнейшей работы с ними. Например, как прочесть “старый” текстовый файл?

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

Mick:

Про модели в виде файлов готов согласиться, но образ - это другое. Это конкретный продукт конкретного приложения. Попробуйте в Windows поработать с образом, минуя приложение, которое его создало. А если более теоретически, вспомните 7-уровневую модель ИТ, которая описывает все от приложений пользователя (самый верхний уровень) до физического уровня (типа какой кабель). Уровни модели могут взаимодействовать только с соседними (редко через один). А здесь предпринимается безуспешная попытка резких прыжков, минуя уровни. Даже конфигурацию байтов вспомнили, и возможности аппаратной реализации (упонимались серии микросхем и т.д.). Уверен на 100%, что с таким подходом задача, сформулированная ТС, решена не будет.

Наверное Вы имеете в виду модель OSI, здесь присутствуют примерно те же уровни:

  1. Прикладной уровень - это файлы определенных форматов, созданные конкретными приложениями.
  2. Представительский уровень - файловая система, с ее иерархией каталогов, именами файлов и т.д.
  3. Следующий уровень - это уже сектора диска и порядок байтов.
  4. Физический уровень - дискета, контроллер, дисковод.

Чтобы обеспечить работу приложений с образом диска необходимо подменить уровни со 2 до самого нижнего.
В итоге программы взаимодействуют с ОС, а уже на уровне драйверов ОС происходит работа не с физическим устройством, а с виртуальным и данные пишутся и читаются из специального файла образа диска.

В качестве примера могу привести весьма распространенную практику созданич виртуальных CD и DVD устройств, работающих с образами дисков, виртуальные диски в операционной памяти.

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

Ни какого перескакивания через уровни нет, данные передаются с уровня на уровень, но некоторые уровни подменяются.

Основной проблемой является как раз получения образа диска в “чужой” операционной системе на несовместимом железе и написание соответствующего драйвера. Но к счастью в этой области уже давно все написано, надо только поискать. Да что там с дисков - с магнитофонных лент для Спектрума и БК-0010 программы успешно работают в эмуляторох на современных компьютерах.

Mick
yantsen:

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

Наверное Вы имеете в виду модель OSI, здесь присутствуют примерно те же уровни:

  1. Прикладной уровень - это файлы определенных форматов, созданные конкретными приложениями.
  2. Представительский уровень - файловая система, с ее иерархией каталогов, именами файлов и т.д.
  3. Следующий уровень - это уже сектора диска и порядок байтов.
  4. Физический уровень - дискета, контроллер, дисковод.

Чтобы обеспечить работу приложений с образом диска необходимо подменить уровни со 2 до самого нижнего.
В итоге программы взаимодействуют с ОС, а уже на уровне драйверов ОС происходит работа не с физическим устройством, а с виртуальным и данные пишутся и читаются из специального файла образа диска.

В качестве примера могу привести весьма распространенную практику созданич виртуальных CD и DVD устройств, работающих с образами дисков, виртуальные диски в операционной памяти.

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

Ни какого перескакивания через уровни нет, данные передаются с уровня на уровень, но некоторые уровни подменяются.

Основной проблемой является как раз получения образа диска в “чужой” операционной системе на несовместимом железе и написание соответствующего драйвера. Но к счастью в этой области уже давно все написано, надо только поискать. Да что там с дисков - с магнитофонных лент для Спектрума и БК-0010 программы успешно работают в эмуляторох на современных компьютерах.

  1. Согласен. Пишем и добавляем драйвер. Эквивалентно созданию приложения, создающего образ диска.
    2.С тем что поискать надо, тоже согласен. Но не факт, что заработает в силу каких-то минимальных особенностей. Только древнее устройство еще присоедините. По существу, выявили 2 пути чтения: локальный с присоединением древних устройств и написанием или поиском соответствующих драйверов или сетевой с организацией сетевого взаимодействия.
    Названий древних машин и ОС не знаю, но это не являтся принципиальным для решения поставленной задачи. Все равно получится “сеть” (а на самом деле переходник/адаптер). Только сетевой вариант взаимодействия - есть стандарт де-факто. Остальное было до нее и по существу будет представлять из себя примитивную сеть.
Ax0n
Mick:

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

Не уверен, но предполагаю, что музей нахадится в 1501 школе(гимназии) им. Ломоносова в ВАО. Имею дело с посредником, не уточнял подробности.

Mick
Ax0n:

Не уверен, но предполагаю, что музей нахадится в 1501 школе(гимназии) им. Ломоносова в ВАО. Имею дело с посредником, не уточнял подробности.

Я тоже живу в ВАО. Уточните адрес. Может и зайду…