Вот оно.
http://i048.radikal.ru/1106/6e/1d88029d20det.jpg
Те которые конденсаторы подписаны 0,1u - это те из набора для сборки от dk_spb что подписаны "104", в том числе и кондёр под проводами, два оставшихся - "751".
А с резисторами и так понятно.
Вид для печати
Вот оно.
http://i048.radikal.ru/1106/6e/1d88029d20det.jpg
Те которые конденсаторы подписаны 0,1u - это те из набора для сборки от dk_spb что подписаны "104", в том числе и кондёр под проводами, два оставшихся - "751".
А с резисторами и так понятно.
Коллеги, а есть исходники ПЗУ новее чем тут ?
http://pdp-11.ru/UKNC/Suvorov/index.htm
В файле wdboot.rar (внутри hdd.rar) - исходники драйверов, ПЗУ, утилиты wdx и скрипты для сборки. Причем wdx.c - на каком-то С, что за компилятор ??
UPD Ага, уже увидел, обсуждение в этой же теме ранее
http://zx.pk.ru/showpost.php?p=262509&postcount=42
Господа хорошие,
Благодаря dk_spb, который мне сподобился прислать плату УК-НЦ, я запустил машину после ~14летнего перерыва. Полез смотреть на исходники, что у меня есть.
Что найдено:
1. WDX/WDXR - версия 1.15. Разницы с 1.14 не помню, но думаю, небольшая.
2. WDBOOT (резидент) - v1.10 - как я понимаю, у вас такая же.
3. Копая драйвер и WDBOOT, со скрипом мозга вспомнил про интересный механизм,
который я приделал к своему драйверу винчестера. Поделюсь им тут.
Итак, есть проблема: кое-какие старые игрушки для УК-НЦ написаны через одно место, не захватывают память в ПП, а сразу копируют свой резидент в верхние адреса доступной памяти, не глядя, есть ли там чего, или нет.
То есть они думают "я тут один, самый первый, значится, память свободна"
Если там уже находятся другие резидентные программы, которые взяли память корректным способом, то естественно, получается полный швах - эти игрушки перетирают собою всё, что можно. Естественно, под раздачу попадает в первую очередь резидент винчестера.
Чтоб забороть этот глюк, в firmware вставлен следующий хак:
В мастер-блок диска (где геометрия, партиции и тп) по смещению 0126 лежит 0.
Если туда положить N > 0, то перед захватом куска памяти для резидента винчестера,
будет захвачен ещё один - просто кусок памяти в верхних адресах, размером N байт.
А сам резидент винчестера, и корректные программы, которые сажают свои резиденты, разместятся уже ниже этого буфера-пустышки.
Потом, когда система загружена, и все другие резиденты установлены, можно сказать "Set WD: Free".
Драйвер освободит захваченый кусок памяти в верхних адресах.
В результате, место в верхних адресах будет свободно, и некорректные игрушки
будут работать, и не убивать нормальных резидентов.
Сразу скажу, что я не помню, что за игрушки - были в каких-то школьных пакетах,
и с довольно неплохой графикой.
Обновление драйвера.
Поправлены ошибки, проверена работа с 64 устройствами.
В наборе:
WD.SYS - простой драйвер
WD64.SYS - с поддержкой 64 устройств
WDTM.SYS - простой с поддержкой device timeout
WD64TM.SYS - с поддержкой 64 устройств и device timeout
При обращении к номерам устройств больше 7 используется однобуквенный синтакс (W10-W77).
Драйвер по прежнему предназначен для загрузки с него. При загрузке с дискеты для доступа к винчестеру нужно запустить программу WDR (из обычного набора для работы с винтом) и сделать INS WD.
Допускается использование драйвера с поддержкой 64 устройств в системе без поддержки.
господа, не могли бы вы перезалить WDC170inv_P.img? на народе он уже не доступен:(
спасибо.
palsw загляни в личку.
Vamos большое спасибо! софта на винтах немало:) но работает только с ide_hdbootv0400, с ide_wdromv0110 не фурычит:( я что-то упустил?
а образ для WD-контроллера есть? не могли бы перезалить?
и общий вопрос - который драйвер "круче"? ID или WD? пытаюсь собрать одну железяку, что лучше в нее засунуть?
А зачем? Цепляешь вместо второй ПЗУ ide_wdromv0110 и делаешь к ней диск. Инструкцию как сделать бутовый винт (если не в курсе) берешь на сайте УКНЦ&PDP-11. РОМы не очень совместимы на уровне загрузчика, а в остальном все ОК.
---------- Post added at 23:16 ---------- Previous post was at 23:14 ----------
WD - это переработанный и дополненный ID. Причем - разработчиков ID ты уже врядли найдешь, а для WD доступны и исходники, и автор.
---------- Post added at 23:18 ---------- Previous post was at 23:16 ----------
Может сразу на нормальном контроллере делать? А с дровами помогут - просто попроси спецов.
это и будет эмулятор IDE на SD-карте. еще вопрос - с эмулятором идут образы rom, код - первые 4кб, вроде неинверсный. если его запихивать в одну 16-бит ПЗУ - какие-то дополнительные телодвижения нужны? (инвертирование, или еще что-нить)?
будет один микроконтроллер, эмулирующий при старте кассету ПЗУ, а потом работающий как регистры HDD. с rom'ами что-нить, кроме обрезки, делать надо?
вопрос по схеме контроллера винта - не пойму, как работает дешифратор адреса? при активном CE0 выбирается ПЗУ, при CE3 - регистры винта? или как-то иначе?
и к какому сигналу привязывается CE0? к спаду SYNC? или к выставлению адреса?
hantarex, для начала ознакомьтесь с работой шины QBUS, она же наша советская МПИ. Теперь по сигналам. CE0 - сигнал разрешения работы системного ПЗУ в диапазоне 100000-117777, если он стоит, то ПЗУ разрешена, иначе запрещена. Т.к. МПИ инверсная, то "электрически" при запрещенном ПЗУ там будет единица. Такая же история и с CE3, только этот сигнал используется для выбора слота (1 или 2). Соответственно так как контроллер работает в окне "100000-117777", то он активируется при запрещенном СПЗУ (CE0=0, "электрически" 1), выбранном слоте (CE3), адрес входит в "окно" (A15-A13=100, "электрически" 011). Адрес естественно защелкивается по спаду SYNC. Сигналы CE0 и CE3 не защелкиваются, они все время на разъеме. А линией A12(защелкнутой) уже выбирается или ПЗУ (адреса 100000-107777), или регистры винчестера (110000-117777).
Alex_K большое спасибо за информацию! не дадите ссылочку на адекватное описание МПИ? а то по моим описаниям SYNC активен на весь цикл обмена, а разделение адрес-данные происходит по фронтам DIN или DOUT :(
Берется описание любого подходящего проца на bitsavers, там все есть в наглядном виде. Названия сигналов только надо будет сопоставить, но это не сложно.
KDJ11-B подойдет.
В описании все верно - сначала выставляется адрес (электрически он инверсный). Затем по спаду SYNC этот адрес защелкивается во внутренних регистрах контроллера. Через некоторое время на линии адрес-данные выставляются данные и потом сигнал DOUT или эти линии переходят у процессора в режим входов и выставляется сигнал DIN. Внешнее устройство отработав, выставляет сигнал RPLY (спад сигнала). Получив RPLY процессор снимает DIN/DOUT. Вслед за этим устройство должно снять RPLY, а процессор SYNC. Так что SYNC действительно активен во время всего обмена, он служит не только защелкой адреса, но и индикатором адресного обмена, т.к. бывают еще процедуры чтения вектора прерывания, а у 1801ВМ2 есть еще чтение безадресного регистра.
А по литературке - поищите книгу Захарова "Электроника-60", доку на 1806ВМ2, там все это описано.
спасибо господа!:) пойду читать.
На случай если кому захочется побаловаться, исходник драйвера, работающего в RT-11 V05.05 и новее. Мне лень дальше ковыряться :)
Использует библиотеку SYSTEM от последних версий RT-11. Собирать в RT-11 V5.6/5.7. SETов нет. Оптимизации нет. Подгрузки кода в ПП нет.
Для системы с поддержкой device timeout раскоментировать TIM$IT=1.
Для поддержки 64 устройств одним драйвером раскоментировать UNI$64=1 (драйвер будет работать и в системах без поддержки 64 устройств).
Сборка:
Не помню точно последний это вариант или нет. Лень УКНЦу собирать :)Код:.MAC WD
.LIN/EXE:WD.SYS/NOBI WD/BOU:1000
Boundary section? SETOVR
еще вопрос: для шины МПИ сигнал RPLY выставляется не позднее 10мкс после активации SYNC. МПИ асинхронная шина, к тактовой частоте процессора не привязана. для УКНЦ есть данные по таймингу? или как их можно расчитать?
интересует максимально допустимое время между сигналами.
тактовая частота ПП 6 Мгц, тогда (1/6Мгц)*64 приблизительно равно 7мкс?. а каково макс. время между выставлением SYNC и DIN,DOUT?
в доках на Электронику-60 время между выставлением адреса и выставлением SYNC макс.=150нс. это для шины процессора. для МПИ действуют те же тайминги?
это я к тому, что пытаюсь сделать программный дешифратор шины МПИ. пока не знаю, хватит ли скорости выбранного микроконтроллера.
нашел очень любопытный документ:) качество не ахти, но кое-что разобрать можно:)
http://www.complexdoc.ru/scan/ГОСТ%2026765.51-86
Если после прочтения данного документа не вывалились глаза - можно продолжить чтение оригинальным сканом стандарта Q-Bus фирмы DEC:
DEC STD 160: LSI-11 Bus Specification.
Я выжимку выложил на Википедию
http://ru.wikipedia.org/wiki/%D0%9C%...B5%D0%B9%D1%81
Правда какой-то добрый человек поправил (начиная с "Общность...") жутким канцеляритом.
По ихнему обычно называется REF.Цитата:
REG РГН РГН Регенерация памяти
Цитата:
DMGO ППД РЗМ Предоставление прямого доступа (разрешение захвата магистрали)
Выше написано, что речь идет о контактах. В этом случае лучше описать как входящие так и уходящие сигналы: IAKI, IAKO, DMGI, DMGO.Цитата:
IAKN ППР ПРР Предоставление (разрешение) прерываний
form, Спасибо за отзыв! Я подумаю как сформулировать и добавлю.
Вопрос! Только у меня в эмуляторе при загрузке с ID5 глюки с клавиатурой?
На реальной машине, что то же так работает? Как победить?
Alex_K, я поправил, сделайте сами, скопируйте туда id.sys и выполните стандартный copy/boot для id5 и загрузка пойдёт, там пакет от Зеленоградцев
обучающий (609 школа) графическая разработка, требующая в памяти некий UKLOAD,
так вот там алфавитная клавиша R не пинькает ??? просто интересно было бы понять, монитор\загрузчик виноват или эмулятор???
могу конечно выложить img с поправленной уже загрузкой, просто элементарные действия и похоже загрузку просто убили из-за как раз какого-нибудь такого глюка ???