Образы бутовых ПЗУ с реальных машин (как Электроники-85 так и pro350) при их использовании в эмуляторе Xhomer не пошли :( :
Trap stack push abort, PC: 160010 (MOV #173400,160143)
или второй вариант склейки:
HALT instruction, PC: 157742 (HALT)
Вид для печати
Образы бутовых ПЗУ с реальных машин (как Электроники-85 так и pro350) при их использовании в эмуляторе Xhomer не пошли :( :
Trap stack push abort, PC: 160010 (MOV #173400,160143)
или второй вариант склейки:
HALT instruction, PC: 157742 (HALT)
Итак, после обретения процессора и ремонта блока питания я все же решился на запуск Электроники-85 (без видеоадаптера). Загораются светодиоды 3 и 4 на задней панели, что обнадеживает - это значит, процессор и ПЗУ работают нормально:) Копаем дальше...
anasana, какой код на индикаторах устанавливает машина без видеоадаптера? (на крышке Pro-350 стоят еше 2 компьютера, не подлезть.)
Да, победа становится всё ближе. Правда, в инструкции прописано, что когда горят только 3 и 4 светодиоды, то возможно неисправна оперативная память или диспетчер памяти :(. Старт ПВК без видеоплат попробую ухитриться осуществить на этой неделе.
... Бортанули меня сегодня из техникума :(. Поэтому снова пробираться к телу на склад планирую уже в понедельник...
Доброе время, есть тут один вопрос - стоит ли пытаться перекомпилировать эмулятор Xhomer с Линукса под Windows?
Идея шальная в том, что я не знаю языков программирования в достаточном для такой задачи объёме... Некоторый энтузиазм появился из-за того, что промучавшись с компиляцией исходного кода на работе дня три, я пошел от обратного, и заремил всё что было навешено графического касательно PRO 350 на исходную базу (эмулятор SIMH 1997-года, модуль PDP11). Он сам консольный, не сильно замусоренный (по сравнению с их распухшим текущим релизом) и в конце-концов нормально запустился, теперь, потихоньку добавляя отключённое из комплекта Xhomer, можно будет через какое-то время запустить Электронику 85 и под виндой (и чего я так к ней прицепился?).
В общем, если отбросить идею получения мной некоторого опыта, есть ли практический смысл портирования того, что и так уже хорошо работает? Даст ли это какие-то преимущества, и вообще нужно ли это будет кому-то?
Перетащил я, в общем, волоком, исходники Xhomer, портировав их под Win32 Console Appl (со stub-заглушками вместо графики есс-но), но запись в видеопамять уже идёт, 4 индикатора состояния помаргивают, соответствуя нормальному естественному прохождению селф-теста из бутрома.
А вот реальная проблема вылезла совсем с другого бока, уже при попытке компиляции как Win32 Project для возможности создания собственно графического вывода: то что в консольном С было предупреждением (среда Visual Studio 2010, да и уверен - и в VS2008 будет то же), то в GUI СРР стало фатальной ошибкой (из-за строгой проверки типов, явных значений передаваемых параметров, etc.), что затрагивает довольно много базовых структур... И их все придётся переписывать, для валидности кода :(. Единственное, что радует, это то, что результат вносимых изменений уже можно будет сверять с конкретным консольным вариантом, а не шурудить, надеясь на авось, приводящее к неслабым косякам.
Наконец-то, синтаксических ошибок компиляции больше нет,.. но полегчало не сильно, потому, что теперь надо высматривать где я перестарался. Т.к. по индикаторным статусам ПВК сообщает, что неисправен модуль в 3-й позиции (там где видеоадаптер), возможно где-то перекоментил вызовы X11-х графических функций чуть больше чем надо... В блоки видеопамяти комп писал последовательности 0101 и 1010. Статусы индикаторов менялись последовательно: 1111, 0000 и 0011 (1 - инд. "горит").
Ну и добавлю отмазку т.к. надеюсь, что на быстрый результат здесь никто не надеется. Потому, что: "... Это мы перевели всю документацию с английского на русский, правда сделать это пришлось PROMPT'ом, так как оба языка мы пока знаем неважно..." (манифест ламера). На данный момент 0 дорожка с загрузочной дискеты уже считывается, и в видеопамяти также лежат уже не только пустые паттерны, а вот сколько времени уйдёт до появления здесь первого скриншота, мне пока ничего не известно :(. А за поддержку всем спасибо, т.к. именно благодаря Вам и этому форуму моя задумка сдвинулась с "мёртвой точки".
Из первых впечатлений от финала дня и недели - судя по всему эмулятор возможно таки жить будет... При "отключенной" плате расширения видеопамяти изображение строится как чернобелое и в дампе легко ловится даже визуально, т.к. не требеут таблицы цветов, в общем хотя на одном из рабочих" экранов" я и пронаблюдал строки "Вставьте дискет Нажмите ПРОДОЛЖ", но вот до релизной красоты виндовому варианту эмулятора будет ещё ой как далеко...
Надеемся увидеть наконец настоящий эмуль под Винды! ;)
Вложение - листинг трансляции тестовой ПЗУ пвк "Электроника-85".
При обмене данными между пвк Электроника-85 и PC удобно использовать 3.5" дискеты. Для переключения 3.5" дисковода в режим 720k нужно заклеить на дискете правое отверстие.
Для подключения к контроллеру используется обычный дисководный кабель PC с небольшими модификациями.
http://pic.pdp-11.ru/images/p2.jpg
http://pic.pdp-11.ru/images/p3.jpg
http://pic.pdp-11.ru/images/p4.jpg
http://pic.pdp-11.ru/images/p5.jpg
1. Разъём IDC-34 ( FC-34P ) со стороны контроллера заменить на IDC-40 ( FC-40P ). Старшие жилы ( по которым на 5" дисководы подаётся питание ) 35=36=37=39:GND ; 38:+5V ; 40:+12V - в данном случае не используются, т.к. питание бралось из блока питания.
2. Найти способ подавать на 34 жилу сигнал READY вместо Disk Change. Например, закоротив на 10 жилу ( выбор привода 0 ) или 12 ( выбор привода 1 ). Влияние сигнала Disk Change со стороны дисководов нейтрализуется соответствующим обрывом жилы.
3. При желании иметь возможность подключения двух дисководов одновременно - поменять местами 10 и 12 жилы у дальнего разъёма ( привод 0 ).
Или сделать всё как-то ещё, сравнив распиновки шины дисковода PC и Shugart interface.
Теперь без ошибок запустились под виндой и все проги что у меня были: Venix 2, Fodos РФ/О B03.01, P/OS 3.2, ПРОС 2.03/1.8, как с образов дискет, так и с имиджей жестких дисков (пока проверил только до появления приглашений меню, т.к. клавиатура в эмуляторе пока ещё не обрабатывается). Теперь буду копать уже вширь, что бы эмулятор смог нормально работать в многозадачной системе, а не только в монопольном режиме.
Кроме того, не фатально, но с бутромом непонятка всё же остаётся. Такое ощущение, что дампы ПЗУх это одно, а исполняемый бут-код - это совсем другое... В прежнем моём сообщении содержимое двух микросхем с материнок и от нашей Электроники 85 (делал лично, с двух разных машин, реализованы на разных микросхемах, идентичны по содержанию) и от Pro350 (нашел в сети) если сравнивать их между собой побитно (СССР-США), то совпадает по структуре, а если посмотреть на "pro350.rom" что идёт в комплекте к xhomer, и ещё одного файлика обнаруженного как-то в Интернете (здесь он в аттаче), то какой стороной физические дампы ПЗУ не склеивай, они никак не похожи,.. ATEST.LST, если в машинных кодах, то тоже вроде бы пока ни с чем что есть не очень совпадает [Исправлено: совпадает!.. Буду дорабатывать!]. Может возможно как-то вытащить реальные данные начиная с загрузочного адреса 160000 с работающих машин да сравнить? Проблема в том, что в Бейсике-Про аналогов команд PEEK/POKE кажется совсем нет, а чем ещё можно прочесть ячейки памяти я не знаю, может в РТ-11 (Фодос) есть какой-то инструментарий?
Попробовал на эмуляторе Xhomer, командой "E" читаются базовые ячейки памяти ПВК (те, что не требуют диспетчера памяти). Пробовал адреса 60000...67776 как в доках (их полный 22-разрядный физ. адрес: 17760000...17767776, в команде указать не удалось) - первая загрузочная страница ПЗУ (4Кб), но считанное всё равно пока ни на что не похоже, даже на то, что ожидалось.
Кстати, Patron, - ATEST.LST - прекраснейший файл, спасибо за него огромное, - и там вырезка начинается с 31-й страницы, а есть ли ещё что-нибудь по похожим темам из док да софта?
Из файлов - только исходники ПЗУ БК-0010 и БК-0011.
Из книжек:
1. Комплекс вычислительный персональный "Электроника МС 0585" - Техническое описание - 2.791.026 ТО
2. Комплекс вычислительный персональный "Электроника МС 0585" - Модуль системный НС1 - Техническое описание - 2.791.026 ТО2 - 3.858.230 ЭЗ - 3.858.230 ПЭЗ - 3.858.230 СБ
3. Комплекс вычислительный персональный "Электроника МС 0585" - Видеоконтроллер НВ1 - Техническое описание - 2.791.026 ТОЗ - 3.858.233 - ПЭЗ - 2.858.233 СБ
4. Комплекс вычислительный персональный "Электроника МС 0585" - Расширитель памяти видеоконтроллера НВ2 - Техническое описание - 2.791.026 ТО6 - 3.858.302 ЭЗ - 3.858.302 ПЭЗ - 3.858.302 СБ
5. Комплекс вычислительный персональный "Электроника МС 0585" - Контроллер НМД - Техническое описание - 2.791.026 ТО5 - 3.858.232 ЭЗ - 3.858232 ПЭЗ - 4.854.043 Э4 - 4.854.045 Э4 - 4.854.046 Э4 - 3.858.232 СБ
6. Комплекс вычислительный персональный "Электроника МС 0585" - Контроллер НГМД - Техническое описание - 2.791.026 ТО4 - 3.858.231 ЭЗ - 3.858.231 ПЭЗ - 3.858.231 СБ - 4.854.044 Э4 - 4.854.041 Э4
7. Комплекс вычислительный персональный "Электроника МС 0585" - Схемы электрические соединений
8. Комплекс вычислительный персональный "Электроника МС 0585" - Инструкция по эксплуатации - 2.791.026 ИЭ
9. Комплекс вычислительный персональный "Электроника МС 0585" - 2.791.026 ЭД - Ведомость ЗИП - 2.791.026 ЗИ - 2.791.026-01 ЗИ - 2.791.026-08 ЗИ
10. Комплекс вычислительный персональный "Электроника МС 0585" - Тестовые программы - Руководство по техническому обслуживанию - .00066-01 46 01
11. Устройство запоминающее НП2 - 3.858.283-01 ПЭ З - 3.858.283-01 ЭЗ - 3.858.283-02 ПЭЗ - 3.858.283-02 ЭЗ - 3.858.283-02 СБ - 3.858.283-02.01 ПЭЗ
12. 4.212.042 93 - Кассета - Схема электрическая принципиальная
13. Памятки потребителя ( список ошибок в документации ).
14. Блок питания "Электроника МС 9002" - Паспорт - 2.087.314 ПС
15. Видеомонитор "Электроника МС 6105" - Паспорт - 2.048.000 ПС
16. Накопитель на магнитных дисках ЕС 5300 "ИЗОТ" - 1986
а также
17. Программное обеспечение ПВК "Электроника МС 0585" - Бейсик-П - Описание языка - .00065-01 35 01
18. Плата КЦГД - Паспорт - ПБАЗ.660.259 ПС - 1986
19. Устройство КЖД - Паспорт - У13.057.316 ПС - 1988
20. Устройство КМД - Паспорт - ЩИЗ.057.136 ПС - 1986
А эти файлы с исходниками ПЗУ БК можно как-то посмотреть?
Вложение - исходники ПЗУ БК-0010 & БК-0011
Заставил свою Электронику-85 нормально работать с отладочным терминалом. Оказывается, мой экземпляр процессора неустойчиво работает при номинальном напряжении питания. Из-за этого некоторые биты на шине ошибочно читались как "1", например, передаем с терминала "a" - приходит "e". Я сбавил напряжение примерно до 4.82 В, и все заработало стабильно.
Patron, спасибо за исходники ПЗУ! По ним удобно определять причину останова машины.
KALDYH, если получится, опиши пожалуйста подробнее про подключение отладочного терминала (он аппаратный?) и процедуру работы с ним, как это примерно вообще работает? + как это можно организовать и чем проверить в эмуляторе?
Преобразованные исходники ПЗУ из листинга Patron'а (из восьмиричных данных) в основном совпадают с загрузочным "pro350.rom", из эмулятора Xhomer, громадными кусками, но с небольшими "вставками" между ними или наоборот "пробелами", есть ли возможность через терминал вычитать реальный "авторан" Электроники? Кстати, а что может влиять на то, что в листинге поле адреса (подобное смещению) не всегда соотсетствует числу кодов предыдущих команд, оно порой как будто бы "больше на два символа"? Даст ли что-то если его откомпилировать на реальном ассемблере от PDP? Есть ли такой под dos/windows?
KALDYH, а опиши пожалуйста подробнее про подключение отладочного терминала (он аппаратный?) и процедуру работы с ним, как это примерно вообще работает?
Собирается переходник
Запускается терминальная программа. Я использую wTerm, но с ним есть некоторые проблемы. Настройки порта 9600, 8N1, управления потоком нет. В порт кидается команда BREAK, и все - на экране адрес останова и приглашение "@"Код:DB9 |РП19-9 В COM-порт
__________
1 | 5 |----+
2 | 4 | |
3 | 3 |----|--------TXD
4 | 2 |----|--------RXD
5 | 1 | |
6 | 9 |--+ |
7 | 8 |--+ |
8 | 7 |----|---------GND
9 | 6 |----+
Ума не приложу...
Есть. А зачем? У меня программатор есть, я могу и так микросхемы вычитать. Надо только учесть, что младшие байты в одной, старшие в другой - машина же 16-разрядная!
2 микросхемы ПЗУ я уже вычитал, но они как бы не совпадают с последовательностью загрузки :( (да, байты местами менял). В предыдущих сообщениях я выкладывал их дампы (и Pro350 и Электроники 85), хотя.... может сравнить бы их с твоими.
Ага, а в эмуляторе, видимо надо будет подымать что-то типа виртуального "сервера" для коннекта к машине.
Видимо я до сих пор не так смотрю :( вот допустим первые символы с самого начала: из МС 23-115E4 - 0x15, 0x0B, ...; в МС 23-116E4 - 0x2D, 0xF1, ...; а в pro350.rom идут - 0x02, 0x00, 0x00, 0x00, ...
Я уже был пытался так себе представить помикросхемно и ожидал, что если пусть четные (младшие) нечетные (старшие) то "pro350.rom" должен начинаться с "15 2D", или скажем "2D 15".
Хотя... Там же ПЗУ логически разбито на 4 блока из-за особенностей адресации, оно скорее всего может лежать где-то в середине файла pro350.rom.
Запускаем поиск по строке #2D #15 #F1 #0B и находим ее по адресу #1000. Соответственно, начало файла pro350.rom находим в ПЗУхах по адресу #800. То есть данные перемешаны блоками, а как - мне лень было дальше разбираться.
Ну всё же таки какие Вы все шустрые!.. Я когда только-только нашел соответствие и нарисовал схемку с адресацией, то меня утащили с работы и закончить прогу смог только дома,.. а вот захожу сюда снова, как тут уже всё тоже и расписано и оформлено! Спасибки!
В аттаче обновление статической части эмулятора Xhomer.
Ну и скриншотик...
http://pic.ipicture.ru/uploads/090917/J7DXfuigCR.png
Пусть эта ссылочка на документацию серии DEC Pro 3xx тоже здесь побудет...
Содержит:
EK-PC300-V1-001_pro300tecV1.pdf (23 Мб) - Первый том тех.описания серии. Системный модуль, в т.ч. расширенное описание ошибок.
EK-PC300-V2-001_pro300tecV2.pdf (19 Мб) - Второй том тех.описания серии. Модули расширения. Включая DECNA и CPM Z80 модули.
MP01922_PC380_EngrDrws_Jun84.pdf (23 Мб) - Сборочные чертежи Pro 380.
ek-pc380-ps-003.pdf (15 Мб) - Professional 380 Pocket Service Guide
При дальнейшем ремонте обнаружил неприятную вещь. Хреновы сборщики впаяли панельку под MMU задом наперед. Соответственно, микросхему MMU КМ1811ВТ1 я сжег:( Теперь маюсь вопросом, где бы взять новую? (P.S. с обсуждением - в личку)
KALDYH, Она часто встречается, дешовая, рублей 15 (если пластиковая). Золотая - рублей 100. Если не найдешь - пиши.
"Распараллеливание" виндового Xhomer'а прошло успешно, скорость почти похожа на оригинал, но по правильному, перед следующим этапом трансформации будущего эмулятора уже необходимо создавать подробный план - портированный исходник завален отладочным мусором так, что дальше некуда...
http://pic.ipicture.ru/uploads/090922/KgPxUAKQdZ.png
"Кислотная палитра" :)
http://pic.ipicture.ru/uploads/090922/vjQUrGaceV.png
Наконец-то. Домучал. Эмулятор v.1.0 Final и вот теперь уже некоторая пауза для переосмысления... Публичной планирую сделать только его вторую версию, т.к. хочу кардинально сменить рабочую платформу, а оптимизировать данную релизную ветку смысла, как мне кажется, никакого.
http://pic.ipicture.ru/uploads/090923/73JgVbXATA.png
Переделал вывод на экран как в "правильных" эмуляторах. Теперь всё бегает очень быстро...
http://pic.ipicture.ru/uploads/091001/RwvTXJpyIs.png
Для игры в меню ПРОС выбрать 'Пещера (Lode Runner)'.
Управление челом на доп.клавиатуре (в игре нажмите Caps Lock)
7 и 9 копать ямки.
Эмулятор тестировался пока только на WinXP sp3 и Windows 7.
Приветствую. Если коллега Колдун продаст Про-350 - я смогу в Америке заказать DECNA-K к ней, можно будет уже имея железо в руках с помощью коллег с форума попинать порты в отладчике, попытаться через переходник AUI-Ehterhet что-то сделать, етц...
А то без железа под руками - я ничего не могу сделать, я слишком железячник и нулевой теоретик-программист.
Я думаю всё получится, а тем временем можно будет максимально пытаться "напитаться" теоретической частью. Кстати, если рядом будет пробегать CP/M-модуль к Про-350, думаю надо будет параллельно одним махом цапануть и его - всё-таки там в основе Z80, и многим спектрумовским форумчанам такое будет тоже очень небезинтересно. Или пока хотя бы выйти на владельцев железа и вымутить сканы возможной дополнительной документации к платам.
Что насчет DECNA-K и Интернетов.
Мысли такие
а) Попытаться найти описание устройства с портами.
б) Попытаться найти драйвера или ПО реализованное под него для Юниксов например или BSD портированных под Про-350/380, дезассемблировать и посмотреть как оно пашет.
Исходники наверное могут найтись у FORM или он может найти через ДЕК-сообщество.
в) Взять TCP/IP стек для РТ-11 выложенный вот тут: http://shop-pdp.kent.edu/
и попытаться его приспособить к P/OS. Это должно быть не мегасложно.
г) Пнуть коллегу FORM чтобы он связался с "держателем ресурса" http://shop-pdp.kent.edu/ и попросил у него дрова-реализации интернетов на его "реале".
Т.к. там стоит:
"LSI-11/73 система с FPU, 2Mb памяти, RX02 дисководом, MSCP контроллером с 320Mb ESDI диском, DLV11-J, DZQ11 мультиплексором и DEQNA Ethernet контроллером"
Декна его LSI-шная должна быть достаточно совместимой если уж не по портам, так по логике работы и обмена с сетью с Декной-К от Про-450/380.
Ну а я пока буду стараться обрасти "железом", благо появились завязки и на еВау позволяющие покупать... Может смогу LSI-11 или MicroPDP-11 "по частям" собрать...
Ну и конечно надежда на коллегу Калдуна, что он оперативней решит продать Про-350. :)
Если они делались в принципе для BSD (в чем я не уверен), то дизассемблировать их не нужно. Можно посмотреть здесь - там были BSD для PRO.
Может и не сложно, но кто-то должен этим заниматься. ;) Еще можно попробовать выпросить у BQT его TCP/IP stack для RSX (он правда в зачаточном состоянии.
Эти дрова - часть дистрибутива как RT-11 так и тамошнего TCP/IP (в нем драйвера немного изменены - добавлен нужный функционал).
---------- Post added at 14:33 ---------- Previous post was at 14:27 ----------
В догонку...
Посмотрел тут у себя лог sysgenа RT-11, там есть такая строчка:
Код:NC Ethernet Handler PRO Series
Вот, коллега FORM подтвердил мои выводы.
Если бы я еще был программистом, а не только "железячником с руками из середины туловища"...
Немного офтоппика на DEC-овскую тему.
Нацелился я на еВее через знакомых на Q-BUS ные платки от LSI-11/MicroPDP-11 и все прочее что будет проскакивать нужного для сборки "реала".
Например:
DEC Digital Q-BUS CPU Board M7270 LSI-11 - забавная такая процессорная полуплатка с двумя F-11 в 4-х корпусах...
Или процессорная полуплатка на J-11...
Только вот проблема корзины под все это удовольствие заставляет задуматься о таком изврате как переходник с разъёмом для втыкания в советских корзин Эл-60/ДВК.
Или заказе печатки с с разводкой под разъемы и самостоятельной спайкой её. Что судя по всему будет стоить достаточно негуманно, но при отсутствии родной "корзины" одним из вариантов может быть...
Конечно надо!
Причем не просто фото, а желательно "скан" с приложенной линейкой.
---------- Post added at 14:35 ---------- Previous post was at 14:30 ----------
Коллега, эмуль более-менее домучаете - поделитесь?
Причем интересно как эмулирована клавиатура дековскаяя, а то впсоминаются мне ужосы с клавами РС и Спектрумами, где 12-пальцевые комбинации для эмуляции нажатия на пектруме..
А то надо осваивать начинать ПО Про-350 и П/ОС.
Да, конечно, т.к. версия 1.01, которую я выкладывал на предыдущей странице, не отрабатывает двойные нажатия и примерно десяток функциональных клавиш. Это запланировано позже, как результат окончания работ над виртуальной экранной клавиатурой, т.к. во второй версии взят стратегический курс на MFC против чистого WinAPI как в той в которой бегает Лод Раннер.
На сегодня, всё что было реализовано в 1.01, уже перенесено в MFC. По мере понимания отдельных деталей начинаю свободней хозяйничать в коде.
Заминка с тем, что на работе древняя, медленно-компилирующая машина и нахрен отключили Инет, оффлайн MSDN под VisualStudio 2010 ещё не выпущен, а с MFC я раньше никогда не работал... Кстати, комбинации в P/OS / ПРОС, как по мне, практически не страшные - вся раскладка легко умещается на листик бумаги с распечаткой шаблона обычной РС-клавиатуры.
Кстати, как можно описать звук который выдает динамик клавиатуры?
Шчёлк! :)
А это уже как сделаете. Тут полная свобода ваших рук. :)
Хоть звук передергиваемого затвора АК ставьте. :D