Внимание! Это временный неофициальный архив старой версии форума Полигон Призраков, созданный сочувствующим форуму участником. Этот сайт просуществует лишь до тех пор, пока администрация Полигона не сдержит своё обещание и не откроет официальный архив по адресу old.sannata.org.

Полигон-2

Форум о старых компьютерах

Объявление форума

Если пользуетесь личными сообщениями и получили по электронной почте оповещение о новом письме, не отвечайте, пожалуйста, почтой. Зайдите на форум и ответьте отправителю через ЛС.

Полигон-2 »   Другие архитектуры »   Использование НМД2 в ДВК
RSS

Использование НМД2 в ДВК

<<Назад  Вперед>> Страницы: 1 2 3 4 5 ... .. 12 13 14 15 16 17
Печать
 
andyTh
Гость

Ссылка

День добрый,
В связи с отсутствием родного КЖД посещают странные мысли. Периодически проскакивают платы от Э85 разной степени комплектности. Вот снова засветился НМД2 без проца и ПЗУ. Проц покупаемый, с ПЗУ сложнее, но допустим тоже как то решить можно.
Переходник между шинами сваять можно.
Насколько эти контроллеры совместимы программно?
Сейчас на форуме
borisfox
Advanced Member


Откуда: Хабаровск
Всего сообщений: 946
Рейтинг пользователя: 0


Ссылка


Дата регистрации на форуме:
30 июля 2008
Программно в драйверах различается работа с прерываниями, в остальном совместимы, но системные магистрали заметно разные, пассивным переходником не обойдётесь, в частности, придётся реализовывать схему работы с прерываниями в стандарте МПИ (в Электронике-85 с НМД на магистраль идут только сигналы запроса обмена).
alecv
Advanced Member


Откуда: Санкт-Петербург
Всего сообщений: 5545
Рейтинг пользователя: 0


Ссылка


Дата регистрации на форуме:
5 окт. 2004
AndyTh Шина в Электронике-85 - это клон шины CTI от DECPRO-350.
Доки видел на bitsavers . CTI похожа на Q-BUS но не совсем.
В принципе есть манияки, которые такие переходники делали
http://www.pdp11gy.com/5E.html
bigral
Junior Member


Всего сообщений: 133
Рейтинг пользователя: 0


Ссылка


Дата регистрации на форуме:
6 мая 2012
там выложенны схемы и исходники дров, этот человек отвечает на email, и сейчас он уже пару лет делает эмулятор st506/st412 винта, до этого успешно сделал эмулятор RL02

rqdx контроллеры доступны на ebay
andyTh
Гость

Ссылка

День добрый,
Это я от горя :) Оставались у нас в городе два известных мне места, где были ДВК и обещали поискать их. Вчера позвонил один товарищ и сказал, выбросили всё...

Мне по фидошной памяти чего то казалось, что переходник там почти таки пассивный. Если это не так, затея не стоит смысла, т.к. эмулировать родные ПЗУ от НМД2 тож занятие альтернативное.
bigral, я тут пытаюсь восстановить в памяти стандарт АТА и копаю пару готовых проектов. Ночью и медленно :)

Вот они

http://pdp-11.ru/UKNC/Suvorov/index.htm
http://www.chdickman.com/qbus_ide/
http://www.telegraphics.com.au/pdp11/dsu/

копаю по одной простой причине, готовые драйвера :)

Дойду до какого то логического рубежа, вытравлю плату, открою тему и буду приставать с идиотскими вопросами.
Сейчас на форуме
MM
Advanced Member


Откуда: Павловский Посад Мск.обл.
Всего сообщений: 3418
Рейтинг пользователя: 0


Ссылка


Дата регистрации на форуме:
2 авг. 2013
1. Конструкция Дмитрия Прянишникова более-менее подходящая ( на самый первый взгляд ).
Было бы гораздо веселее, если бы автор писал по-русски ( или по-украински ).
По Э3 - там и какое-то ПЗУ есть ( загрузочное ? ), размер - 200 ( 8 ).
2. Реализовывать всякие там IRQ и DMA для реальной работы с современными дисками - извращение, особенно для МПИ с её не более 1.5 мвыборок / сек. Пио при правильном программировании даст не хуже 0.5 мбайт/сек скорость чтения - на ДВК4.
Для БКшек , разумеется, в разы хуже - там очень слабенькая МПИ, и скорость там не более 0.5 Мвыборок / сек будет ( на 1801ВМ1 ).
2.1. Почему до сих пор нет нормального IDE на мелких ИС для ДВК - дело упирается в софт - написать правильный драйвер для работы с НТФС - это надо иметь высокую квалификацию, а просто почикать винчестер на кусочки по 32 мбайт - выйдет не особо привлекательно. Насчет аппаратной конструкции - есть мультикарта для БК11 - она же и для ДВК почти подходящая - за исключением форм-фактора и особенностей работы с высшими адресами 1801ВМ3, но это вопрос решаемый парой мелких ИС и МГТФ. Вот, правда, ПЗУшку для IDE до сих пор пока не написали...
palsw
Advanced Member


Откуда: Измаил_Украина
Всего сообщений: 317
Рейтинг пользователя: 0


Ссылка


Дата регистрации на форуме:
28 фев. 2015
AndyTh интересно поучаствовать в разработке :)
bigral
Junior Member


Всего сообщений: 133
Рейтинг пользователя: 0


Ссылка


Дата регистрации на форуме:
6 мая 2012
1 dma - важен как часть тех "понтов" из которых строится business computer pdp-11, если все упростить до уровня 1801vm1 и bk-0010 то лучше вообще заняться s-100 i8080 cp/m mp/m, это как раз тот уровень;

2 ntfs он же по каким-то версиям развитие files-11 никаким боком контроллером пониматься не должен, требуется только MSCP имплементация простого блочного устройства. Популярность будет дикой так как альтернатива scsi controller ценой в сотни $$$
MM
Advanced Member


Откуда: Павловский Посад Мск.обл.
Всего сообщений: 3418
Рейтинг пользователя: 0


Ссылка


Дата регистрации на форуме:
2 авг. 2013
1.Если очень важен именно DMA на МПИ - можно переработать контроллерчик КМД под IDE - можно будет обойтись парой десятков мелких ИС и ПЗУ. Но быстродействие от этого не подрастет, зато сложность - почти удвоится.
Для некотрого повышения быстродействия туда можно пристроить 1801ВМ2А-10 мгц, и СОЗУ побольше.
Однако порекомендую вариант от господина pribor - там все уже сделано и работает.
2.Работа контроллера с NTFS обеспечит фантастическое удобство переноса файлов, можно даже на одном и том же разделе диска содержать и W7 для Интел - машинки, и RT-11 для ДВК во всех возможных вариантах.
Однако это скорее фантастический сюжет, т.к. понимающие в логике NTFS наврядли снизойдут до DEC - программирования в машкодах.
3.БК10 вообще не стоит рассматривать для RT-11 - там маловато ресурсов вообще. Однако есть некотрые экспериментальные конструкции в этом направлении, но я пока их не исследовал ( т.н. Самарский вариант IDE, 177620-177656, 1801РР1 вместо РЕ2-326 ).
4.На КЖД ДВК нет DMA - оно в принципе внутри вообще программно устроено - попроще, чем КМД ( МУ ).
_Patron_
Member


Откуда: Москва
Всего сообщений: 146
Рейтинг пользователя: 0


Ссылка


Дата регистрации на форуме:
19 дек. 2012
bigral написал:
[q]
1 dma - важен как часть тех "понтов" из которых строится business computer pdp-11
[/q]
НМД не использует ДМА - слова при чтении и записи передаются драйвером между памятью и регистром данных контроллера по одному, как в DX или MX.

Прерывания используются только при завершении чтения и записи. Если очень хочется - можно посадить драйвер на прерывание таймера и проверять завершение операции 50 раз в секунду, но проще работать как в драйвере MX или HX - вообще без прерываний.
andyTh
Гость

Ссылка

Patron, меня мучал один вопрос, а тут как раз вы и заглянули. Вами написана замечательнейшая вещь, НХ драйвер и сервер. Согласитесь ли вы откорректировать этот драйвер таким образом, что бы он работал не с 065 а неким набором адресов. По этим адресам я повешу достаточно быстрый микроконтроллер с интерфейсом к IDE(CF) и FAT. Отрабатывать Q-BUS чисто программно на современных дешёвых мегагерцах.
Идея не сильно изящная технически, но реально реализуемая.

ПыСы почему так?
Есть доступные альтернативы, коммерческая разработка на этом же форуме.
Бери и покупай.
Есть контроллер от УКНЦ на другом форуме. Допилить драйвер и переразвести плату.
Есть контроллер Прянишникова. С схемой, драйверами, печаткой. Бери и делай.
Есть контроллер Сhdickman. Тож бери да делай. Даже CPLDишку купить ещё можно.
Но чем то каждый из них неудобен :) Почему НХ? насколько я понимаю, он не привязан к аппаратной реализации контроллера вообще. Т.е. нет необходимости писать НТФС под ДВК :)
Идея с ВМ2 в контроллере правильная, но кто для него прошивку писать то будет. А так возьмём две готовые вещи и попробуем смотать их синей изолентой друг с другом.
Сейчас на форуме
palsw
Advanced Member


Откуда: Измаил_Украина
Всего сообщений: 317
Рейтинг пользователя: 0


Ссылка


Дата регистрации на форуме:
28 фев. 2015
AndyTh
[q]
Есть контроллер Прянишникова. С схемой, драйверами, печаткой. Бери и делай.
[/q]
мне нравиться больше этот вариант.Плис и фпга уже достали последнее время.То их уже купить негде ,то возникает проблема ттл 5.0 - 3.3 совместимость и целый огород костылей.Тут адапптер на рассыпухе как я понял и вполне реально заказать маленькую партию и заняться запуском и поисков багов .
andyTh
Гость

Ссылка

Самое интересное, мы с ним были знакомы. Но много лет как контактов не было. Попытался найти по знакомым знакомых, бестолку. А пару вопросов не грех было и задать. Большой у него контроллер.
Много микросхем :) и по большому счёту, без допила софта под новое железо, ничем не лучше контроллера на 2х регистрах и дешифраторе адреса.
Глянь на карту адресов http://www.chdickman.com/qbus_ide/ и сравни с картой регистров АТА. :) ММ прав, софт кто писать будет?
Мало начать делать хорошую вещь, надо её доделать до конца. ММ прав, я к примеру серьёзный софт под 1801ВМхх в обозримом будущем не потяну. Кому из спецов это будет нужно и интересно?
А так возьмём одну почти подходящую разработку и попытаемся склеить с другой почти подходящей.
Программный драйвер у нас есть. В железе надо организовать интерфейс аналогичный 065, что не так и сложно.
Дальше посмотрим. у Vslav эмулятор отрабатывает циклы ВМ1, думаю пройдёт и здесь подобное решение.
Сейчас на форуме
_Patron_
Member


Откуда: Москва
Всего сообщений: 146
Рейтинг пользователя: 0


Ссылка


Дата регистрации на форуме:
19 дек. 2012
AndyTh написал:
[q]
откорректировать драйвер HX таким образом, что бы он работал не с 065 а неким набором адресов
[/q]
А есть ли смысл производить в контроллере разбор протокола HX, когда можно просто считывать с Q-BUS команды и выполнять их.

Тогда проще взять за основу драйвер псевдо-диска HD

Контроллер должен принимать следующие команды от драйвера:

1. Установить номер привода для последующей операции.
2. Установить номер блока для последующей операции.
3. Установить счётчик слов для последующей операции.
4. Выполнить операцию "ЧТЕНИЕ".
5. Выполнить операцию "ЗАПИСЬ".
6. Выполнить операцию "СООБЩИТЬ РАЗМЕР НОСИТЕЛЯ" ( в блоках ).

По командам "ЧТЕНИЕ" и "ЗАПИСЬ" контроллер должен прочитать/записать заданное количество слов через регистр данных.
По команде "СООБЩИТЬ РАЗМЕР НОСИТЕЛЯ" контроллер должен поместить в регистр данных размер носителя в заданном приводе.

Если переданная контроллеру команда содержит недопустимое значение ( указанный привод не существует или не содержит носителя, указанный номер блока превышает размер носителя, указанный счётчик слов больше количества слов до конца носителя, произошла ошибка чтения или записи ) - контроллер устанавливает в регистре команд бит 15.
palsw
Advanced Member


Откуда: Измаил_Украина
Всего сообщений: 317
Рейтинг пользователя: 0


Ссылка


Дата регистрации на форуме:
28 фев. 2015
Кажись зарождается новый проект и новая железка :)

HX же последовательный протокол - зачем он нам сейчас нужен?
IDE винт 16 бит и есть шина МПИ 16-22 бита - все логично.
Вопрос в железе - использовать расыпуху СССР (импорт) или делать на ПЛИС и немного буферов на выбор.

DEC как смотрит на HDD и IDE в частности? Мы же не будет городить противоречащий идеологии DEC контроллер (адаптер) ?Нужно максимально использовать наработки прошлых лет.
andyTh
Гость

Ссылка

_Patron_ написал:
[q]
AndyTh написал:
[q]
откорректировать драйвер HX таким образом, что бы он работал не с 065 а неким набором адресов
[/q]
А есть ли смысл производить в контроллере разбор протокола HX, когда можно просто считывать с Q-BUS команды и выполнять их.

Тогда проще взять за основу драйвер псевдо-диска HD
[/q]
Насколько я понимаю, это будет фактическим аналогом КНГМД с условно неограниченным размером в блоках?
И вообще никак и ни с чем не совместимый?
Файлики проводником на карточку сбросить будет нельзя :)
Сейчас на форуме
_Patron_
Member


Откуда: Москва
Всего сообщений: 146
Рейтинг пользователя: 0


Ссылка


Дата регистрации на форуме:
19 дек. 2012
Блоки всегда по 256 слов ( 512 байт ), но RT-11 позволяет читать/писать любое количество слов ( хоть меньше размера блока, хоть больше ), начиная с границы блока.

Драйвер КНГМД больше похож на HX - там на диск пишутся не блоки данных, а блоки "протокола MX", которые надо зашифровать/расшифровать в драйвере.
andyTh
Гость

Ссылка

palsw написал:
[q]
Кажись зарождается новый проект и новая железка :)

HX же последовательный протокол - зачем он нам сейчас нужен?
IDE винт 16 бит и есть шина МПИ 16-22 бита - все логично.
Вопрос в железе - использовать расыпуху СССР (импорт) или делать на ПЛИС и немного буферов на выбор.

DEC как смотрит на HDD и IDE в частности? Мы же не будет городить противоречащий идеологии DEC контроллер (адаптер) ?Нужно максимально использовать наработки прошлых лет.
[/q]
НХ просто протокол, по чём он бегает вторично. И не столько интересовал меня сам протокол, как начальный загрузчик и сам драйвер.

ИДЕ винчестер нормально вписывается. вопрос в том, как вписать в ДВК современные файловые системы.
Сейчас на форуме
andyTh
Гость

Ссылка

_Patron_ написал:
[q]
Блоки всегда по 256 слов ( 512 байт ), но RT-11 позволяет читать/писать любое количество слов ( хоть меньше размера блока, хоть больше ), начиная с границы блока.

Драйвер КНГМД больше похож на HX - там на диск пишутся не блоки данных, а блоки "протокола MX", которые надо зашифровать/расшифровать в драйвере.
[/q]
Я неточно выразился, по сути это будет "одна дорожка", состоящая из блоков размером 512. Но их количество фактически будет ограничено только разрядностью чсётчика блоков. Так?
Сейчас на форуме
_Patron_
Member


Откуда: Москва
Всего сообщений: 146
Рейтинг пользователя: 0


Ссылка


Дата регистрации на форуме:
19 дек. 2012
Именно так.

В HX тоже так. Никаких "дорожек" и "секторов" в HX нет.

Дорожки и сектора выдумывают драйверы по ходу дела.

Операционка ни про какие дорожки и сектора даже не подозревает и сообщает драйверу только адрес буфера, номер привода, номер блока и количество слов.
andyTh
Гость

Ссылка

Беру таймаут. Надо бы перебрать доступные в округе МК, сделать платку на Q-BUS и мигнуть светодиодом.
Вот смотрю я на кусок схемы КЦГД, как на образец входной части.
Достаточно ли дешифровать только 16 линий адреса?
Как с доступностью АП2? Я то нашёл энное количество, иль пожертвовать некоторой функциональностью и поставить обычные 8бит регистры?
Сейчас на форуме
Anonymous
Advanced Member


Откуда: Москва(Россия)
Всего сообщений: 2537
Рейтинг пользователя: 0


Ссылка


Дата регистрации на форуме:
22 нояб. 2011
AndyTh написал:
[q]
Достаточно ли дешифровать только 16 линий адреса?
[/q]
Для организации регистров в странице в/в используется сигнал BS/К_ВУ_Н, когда он активен(в логическом нуле), адрес регистра выставляется на ад1..ад12, которые и следует дешифрировать.

AndyTh написал:
[q]
Как с доступностью АП2? Я то нашёл энное количество, иль пожертвовать некоторой функциональностью и поставить обычные 8бит регистры?
[/q]
Еще годные драйвера QBUS - 559ИП3 (похожи на АП2: 4 входа данных, 4 выхода данных, 4 магистральных входа-выхода) и 559ИП15 (8 разрядов с ОК на одной стороне и тристейт на другой, двунаправленные).
andyTh
Гость

Ссылка

Anonymous написал:
[q]
Для организации регистров в странице в/в используется сигнал BS/К_ВУ_Н, когда он активен(в логическом нуле), адрес регистра выставляется на ад1..ад12, которые и следует дешифрировать.
[/q]
Где можно почитать об этом способе адресации? Гугл выдаёт только диаграммы только простого обмена

http://www.intuit.ru/EDI/11_04...es/2-3.gif

Упоминание о обмене ВВ с отображением на память попалось только в сканированном документе от DEC. Но качество его нечитаемое. Можно и просто картинку
Сейчас на форуме
_Patron_
Member


Откуда: Москва
Всего сообщений: 146
Рейтинг пользователя: 0


Ссылка


Дата регистрации на форуме:
19 дек. 2012
AndyTh написал:
[q]
Где можно почитать об этом способе адресации?
[/q]
Устройство на шине Q-Bus должно принимать сигнал SYNC только при активном сигнале на линии BS.

Изначально этот сигнал имел название BS7 ( Bank Select 7 ), затем стал называться BSIO ( Bank Select I/O ). На шинном разъёме к названию добавляют префикс 'B' ( Backplane ) и получается BBS7 / BBSIO.

В МПИ сигнал BS7 называется или (по-старому) ВН ВВ, или (по-новому) ВУ ( полное название: К_ВУ_Н ).
Пока на этой линии высокий уровень - устройство не должно принимать сигнал SYNC.
andyTh
Гость

Ссылка

Т.е. если я планировал SYNC завести на прерывание и по нему отлавливать адрес, то нужно ещё будет добавить программную или аппаратную проверку на BBS7.
Сейчас на форуме
_Patron_
Member


Откуда: Москва
Всего сообщений: 146
Рейтинг пользователя: 0


Ссылка


Дата регистрации на форуме:
19 дек. 2012
AndyTh написал:
[q]
Т.е. если я планировал SYNC завести на прерывание и по нему отлавливать адрес, то нужно ещё будет добавить программную или аппаратную проверку на BBS7.
[/q]
Если полностью следовать стандарту.

Ведь адресных линий может быть и 16, и 18, и 22. Чтобы устройство, обрабатывающее только 12 младших битов адреса, могло понять, когда надо отвечать - без сигнала BS7 не обойтись.
andyTh
Гость

Ссылка

Стоп, но при программной обработке запросов шины я в любом случае обрабатываю оба байта. Т.е. адрес автоматически получается 16 бит. И ещё момент, на плате контроллера должна ведь быть сэмулирована ПЗУшка с загрузчиком. Она должна напрямую отображаться на память?

При ёмкости набортного флеша современных контроллеров туда и RT11 влезет.
Сейчас на форуме
_Patron_
Member


Откуда: Москва
Всего сообщений: 146
Рейтинг пользователя: 0


Ссылка


Дата регистрации на форуме:
19 дек. 2012
Загрузчик надо отображать на незанятые адреса страницы ввода-вывода.
Для универсальности - базовый адрес отображения загрузчика лучше иметь возможность задавать командой.
Mixa
Member


Откуда: Москва
Всего сообщений: 170
Рейтинг пользователя: 0


Ссылка


Дата регистрации на форуме:
8 авг. 2009
Чуть в сторону от темы, но где-то рядом.. Весеннее обострение или у дураков мысли сходятся. :) Сделал макет сопряжения ВМ1 и IDE, с целью устранить зуд и исправить недоразумение aka режим PIO IDE. Вот такая штуковина

умеет читать и писать секторы, блок пересылается в режиме DMA (причем IDE работает в режиме PIO).
Прерывания еще не проверял, но там засад быть не должно. Два прерывания, одно от IDE, другое по окончании пересылки блока от DMA. Соответственно, никаких программных циклов на опросы флагов и пересылку блоков. Нижний разъем это IDE, к левому присоединяется ВМ1, который на другом стенде.
Как решение для тиражирования - есть сомнения по причине нежности 588ВТ2 по отношению к зарядам статического электричества, шина IDE идет прямо на ВТ2. Убирать за буфера - теряется и так уже на грани приемлемости элегантность (запутанность впихнулась в 16L8).
У меня же есть вопросы, не хочется ради них открывать новую тему, поэтому попытаюсь "примазаться" тут:
- Какие адреса для IO лучше всего использовать, если блок, обслуживающий IDE+DMA+прерывания это непрерывная область 16 слов?
- Предполагается, что в окончательном изделии будет ВП1-065, как лучше выстроить цепочку прерываний (что ближе к процессору, что дальше)?
palsw
Advanced Member


Откуда: Измаил_Украина
Всего сообщений: 317
Рейтинг пользователя: 0


Ссылка


Дата регистрации на форуме:
28 фев. 2015
Mixa
[q]
к левому присоединяется ВМ1, который на другом стенде.
[/q]
очень хочется увидеть этот стенд и описание его.Тут отдельная тема не помешала бы :)
andyTh
Гость

Ссылка

Очень интересно, тем более это более "рассово правильное" решение. Процессор то родной.
Какое у устройства конечное назначение? Процессор на плате будет свой или это пассивная плата с регистрами? Применить в качестве портов для IDE ВП1-033/034 не думали?
Сейчас на форуме
_Patron_
Member


Откуда: Москва
Всего сообщений: 146
Рейтинг пользователя: 0


Ссылка


Дата регистрации на форуме:
19 дек. 2012
Mixa написал:
[q]
Какие адреса для IO лучше всего использовать
[/q]
Самые "правильные" адреса - 170200-170366 ( UNIBUS Map ), но они пересекаются с системным ПЗУ ДВК-1, поэтому надо проверять BS7.


Mixa написал:
[q]
как лучше выстроить цепочку прерываний (что ближе к процессору, что дальше)?
[/q]
Не принципиально.
Anonymous
Advanced Member


Откуда: Москва(Россия)
Всего сообщений: 2537
Рейтинг пользователя: 0


Ссылка


Дата регистрации на форуме:
22 нояб. 2011
Самые правильные адреса - старше 0177000, чтоб и к БК, и к УКНЦ разработка подходила.
andyTh
Гость

Ссылка

Anonymous написал:
[q]
Самые правильные адреса - старше 0177000, чтоб и к БК, и к УКНЦ разработка подходила.
[/q]
Тогда надо бы как то охватить всё многообразие существующей периферии в этом диапазоне, чтоб не сесть на уже имеющееся устройство. Например системный порт и т.д.
Сейчас на форуме
Anonymous
Advanced Member


Откуда: Москва(Россия)
Всего сообщений: 2537
Рейтинг пользователя: 0


Ссылка


Дата регистрации на форуме:
22 нояб. 2011
Вот тут уже обсуждалось по адресам БК использование свободных областей http://bk0010.org/forum/?id=4873
palsw
Advanced Member


Откуда: Измаил_Украина
Всего сообщений: 317
Рейтинг пользователя: 0


Ссылка


Дата регистрации на форуме:
28 фев. 2015
а есть смысл "подстраиваться" под все варианты пдп совместимых? Главное что бы конфликтов не было с двк железом ,а то в попытке сделать супер совместимую железку отобьете все желание у ТС что то делать вообще
Anonymous
Advanced Member


Откуда: Москва(Россия)
Всего сообщений: 2537
Рейтинг пользователя: 0


Ссылка


Дата регистрации на форуме:
22 нояб. 2011
Под все варианты PDP - как раз не надо, надо под компы, которыми пользуются форумчане, т.е. про адреса суровых контроллеров гигантских накопителей можно с некоторой оговоркой забывать, а оговорка та заключаться должна в возможности выбора альтернативного адреса, на случай, когда потребуется подсоединить новодел к классике. Если обустроить регистры в вышеназванной области, с учетом областей, указанных в теме на форуме bk0010.org, то ни на ДВК, ни на БК/УКНЦ контроллер не будет конфликтовать ни с чем.
И еще вопрос, 588ВТ2 обеспечивает 18-битовый DMA, а как адресоваться выше на Э60-1/ДВК автор продумал?
MM
Advanced Member


Откуда: Павловский Посад Мск.обл.
Всего сообщений: 3418
Рейтинг пользователя: 0


Ссылка


Дата регистрации на форуме:
2 авг. 2013
Комменты о теме.
Если делать для RT-11 контроллер IDE - там ДМА совсем не нужен - см. текст драйвера, например DW: . И никакие высшие адреса - тоже не нужны - RT-11 сама о всём позаботится. Единственная загвоздка - начальный загрузчик - если контроллер неинтеллектуальный, целесообразно предусмотреть в нём небольшое загрузочное ПЗУ - если винчестер не будет совмести с ИБМ ЭВМ, то вполне 1000 ( 8 ) хватит длиной - при запуске этого участка кода должен грузится 0 блок 0-го винчестера в 0 адрес ОЗУ ДВК ( БК11М ). А если контроллер оснащен собственным процессором - возможно или командой пульта L грузить, или ( что лучше ) - как в КМД ( МУ ) сделать отдельную команду загрузки - тогда ДМА на главную МПИ очень даже понадобится, именно для первоначальной загрузки. А линейное применение ДМА - вовсе не обязательно. Как не самый хороший вариант - попытаться сэмулировать КЖД - тогда и драйвер не придется особо писать, по крайней мере для RT-11. ( А вот писанины микрокода такого контроллера будет порядочно ... ).
*
Вариант для ленивых - самарский IDE для БК10/11 - там все включено, регистры IDE - 177620-177656 - неподходящ для 1801ВМ3, т.к. там ДП у него сидит. ПЗУшка такого контроллера абсолютно совместима с RT-11 и может поддерживаться драйвером BY.SYS - надо только указывать не 0 и 1 дисководы. Контроллер для этого варианта есть в продаже - с пассивным переходником подойдет для ДВК-2 ( буфет - КР531АП2 ). Он же и гибкие диски обслуживает - типа BY.SYS ( 1801ВП1-128 ) . Есть в продаже и голая плата для такого контроллера - около 700 руб. в Москве.
http://www.forum.pk-fpga.ru/viewtopic.php?f=54&t=5455
http://zx.pk.ru/showthread.php?t=21710
http://bk0010.org/forum/?id=14779
Обращаю внимание, что ПЗУ на плате мультикарты отсуствует - т.к. она разрабатывалась для совмесной работы с эмулятором ПЗУ ( в составе др. блока ). Так же следует ознакомится с описанием софта для Самарского контроллера и особенностей его применения.
Anonymous
Advanced Member


Откуда: Москва(Россия)
Всего сообщений: 2537
Рейтинг пользователя: 0


Ссылка


Дата регистрации на форуме:
22 нояб. 2011
MM написал:
[q]
Комменты о теме.Если делать для RT-11 контроллер IDE - там ДМА совсем не нужен - см. текст драйвера, например DW: . И никакие высшие адреса - тоже не нужны - RT-11 сама о всём позаботится.
[/q]
Если вы сами посмотрите в текст того же DW, то увидите, что пересылка в высшие адреса идет не через подпрограммы монитора ОС, а отображением в буфер пользователя через окно с использованием PAR1, в противном случае, поставив данные на загрузку или запись, образно говоря, можно было бы пойти пить чай.
palsw
Advanced Member


Откуда: Измаил_Украина
Всего сообщений: 317
Рейтинг пользователя: 0


Ссылка


Дата регистрации на форуме:
28 фев. 2015
http://www.telegraphics.com.au/pdp11/dsu/

интересно глянуть на PCB и схему -они в PCAD 4.5 может кто для себя переводил в PDF или JPEG?

сам спросил и сам ответил - чисто посмотреть есть Pview_X5, PCAD4.5, PCAD8.5 http://yadi.sk/d/Pp3ZJ4gRMshAZ

на вид полу-плата МПИ.Думаю вполне реально если получиться перенести во что то современное сделать 1-2 платки и собрать - так сказать опытный образец.Микросхемы более менее распространенные ,только 559ип3 редкие.

есть экспорт в файл изображения BMP
andyTh
Гость

Ссылка

Так схемы там же лежат в пдф. Да и я, небольшой поклонник пикада печатку открыл. Так что там всё нормально.
По поводу ДМА, я в ПДП чайник, но сделать на плате контроллера второй буфер размером в блок, доступный снаружи нет никаких проблем.
Желательно конечно, что бы он с первым буфером(который ПЗУ-загрузчик) и командными регистрами был одним сегментом адресов. Для простоты и скорости программного декодирования.
Базовый адрес не проблема сделать "скользящим" помогите найти пустое окно такого размера.

У меня сейчас другая проблема, выбрал два контроллера. Один нравится больше, но надо покупать программатор и осваивать очередную IDE. Для второго в принципе есть всё, но сам он умнее меня в три раза :biggrin: как минимум.
Правда у него есть порт, который можно настроить как порт с аппаратным мультиплексированием A-D, что несколько упростит жизнь. Вот пока недоразобрался как он слейвом работает.
Сейчас на форуме
palsw
Advanced Member


Откуда: Измаил_Украина
Всего сообщений: 317
Рейтинг пользователя: 0


Ссылка


Дата регистрации на форуме:
28 фев. 2015
визуальный образ получен ПП.
Если получиться конвертировать во что то современное то можно сразу подправить ПП .например разьем IDE поставить стандартный и избавить себя от изготовлением шлейфов и буфера может задействовать более распространенные.

[spoiler]




[/spoiler]
_Patron_
Member


Откуда: Москва
Всего сообщений: 146
Рейтинг пользователя: 0


Ссылка


Дата регистрации на форуме:
19 дек. 2012
AndyTh написал:
[q]
сделать на плате контроллера второй буфер размером в блок
[/q]
Буфер в контроллере не имеет никаких преимуществ перед регистром данных. Разница лишь в том, что из регистра данных драйвер копирует данные в буфер пользователя в цикле без инкремента, а из буфера - с инкрементом.
Mixa
Member


Откуда: Москва
Всего сообщений: 170
Рейтинг пользователя: 0


Ссылка


Дата регистрации на форуме:
8 авг. 2009
palsw написал:
[q]
очень хочется увидеть этот стенд и описание его.Тут отдельная тема не помешала бы :)
[/q]
Ну это только название такое громкое, стенд, на самом деле макетка неприличного вида типа беспаечной бредборды с генератором, 1801ВМ1, 537РУ11 и схемой заливки данных в РУ11. Но стенд, чем не стенд?

AndyTh написал:
[q]
Очень интересно, тем более это более "рассово правильное" решение. Процессор то родной.
Какое у устройства конечное назначение? Процессор на плате будет свой или это пассивная плата с регистрами? Применить в качестве портов для IDE ВП1-033/034 не думали?
[/q]
Ну да, из-за сродства 588 к 1801 и не удержался смакетировать и посмотреть, что к чему :) Собственно, это и есть цель макета, пощупать, насколько элегантно стыкуется. На мой взгляд, достаточно элегантно логически, но не совсем хорошо электрически в том смысле, что IDE межплатный интерфейс по крайней мере, 588 получается наружу торчит, а это нехорошо. Но для моей конечной цели в виде автономной замкнутой минимальной системы на основе 1801ВМ1 - вполне подходит, даже есть мысль IDE припаять, а не разъемом соединять, хотя, это уже излишество.
ВП1-033/034 в концепцию не вписываются, DMA невозможно, а потому серьезно и не рассматривал, хотя, наверное, как-то можно их в IDE превратить, но вот и вопрос: адреса A0..A2 для IDE откуда брать?


Anonymous написал:
[q]
И еще вопрос, 588ВТ2 обеспечивает 18-битовый DMA, а как адресоваться выше на Э60-1/ДВК автор продумал?
[/q]
Не, в этом направлении не думал, потому что и не планировал. В принципе старшие биты на шине выставить можно из какого-нибудь дополнительного регистра, использовав один из битов расширенного адреса 588ВТ2 не по назначению, превратив его в подобие TA у ВМ3. К железу это плюс записываемый регистр с тремя состояниями (или ОК?).
andyTh
Гость

Ссылка

_Patron_ написал:
[q]
Буфер в контроллере не имеет никаких преимуществ перед регистром данных. Разница лишь в том, что из регистра данных драйвер копирует данные в буфер пользователя в цикле без инкремента, а из буфера - с инкрементом.
\t
[/q]
Буфер в контроллере будет по любому, это удобно. Делать его доступным извне или нет другой вопрос.



Mixa написал:
[q]
Ну это только название такое громкое, стенд, на самом деле макетка неприличного вида типа беспаечной бредборды с генератором, 1801ВМ1, 537РУ11 и схемой заливки данных в РУ11. Но стенд, чем не стенд?
[/q]
Ну как бы всё сделанное руками и шевелящееся вызывает интерес, так что ваше изделие не исключение. Довольно интересное и необычное решение просто.
Сейчас на форуме
_Patron_
Member


Откуда: Москва
Всего сообщений: 146
Рейтинг пользователя: 0


Ссылка


Дата регистрации на форуме:
19 дек. 2012
AndyTh написал:
[q]
Буфер в контроллере будет по любому, это удобно. Делать его доступным извне или нет другой вопрос.
[/q]
В контроллере НМД внутренний буфер контроллера "смотрит на шину" в виде регистра данных, а каждое обращение к регистру данных циклически смещает его проекцию в буфер.
andyTh
Гость

Ссылка

Застал меня первомай на работе, зато порисовал немного будущий контроллер.
За основу взял схему подключения КЦГД. Насколько я понимаю, если контроллер диска будет только отвечать на запросы драйвера, часть сигналов использоваться не будет. Сигнал *BIAK0 соединяю с *BIAK1, а BIRQ4 не трогаю вообще.


Да и собственно говоря BIRQ4 подвязан к КЦГД. Где можно посмотреть табличку со стандарными для ДВК прерываниями?
Сейчас на форуме
borisfox
Advanced Member


Откуда: Хабаровск
Всего сообщений: 946
Рейтинг пользователя: 0


Ссылка


Дата регистрации на форуме:
30 июля 2008
BIRQ4 (К ТПР4 Н) в ДВК это запрос векторного прерывания (VIRQ), он не занимается под какое-то устройство монопольно, это разделяемая линия. Сигнал может выставить любая плата, обслужена будет ближняя к ЦП в цепочке IAKO-IAKI (ППРO-ППРI). Платы, не запрашивавшие прерывание, пропускают сигнал подтверждения дальше.

Все вектора прерываний для стандартных устройств можно взять из документации - МС 1201, КМД, КЖД, КТЛК, и т.п.
КЦГД использует регистры и вектора прерываний консольного терминала.
Нестандартные отраслевые изделия использовали первое попавшееся свободное, кто во что горазд...

А что, от варианта MSCP отказались? Зря, получился бы стОящий контроллер... Под него и загрузчик в 1201.03 есть... Да и вообще, на разработанной платформе можно было бы и другие контроллеры понаделать...
Только на современной элементной базе, а то от качества советской комплектации уже аллергия, слишком со многими неизвестными получится задача. Да и в габариты полуплаты не вместится, а полную занимать расточительно...
andyTh
Гость

Ссылка

Это же драйвер шины между корзиной и STM32F2. Вряд ли стмка прокачала бы своими 3,3 вольтами шину. Не делал я ничего раньше под ДВК, от того и вопросы иногда несуразные. Корзинку спаял, машину включил, а без диска грустно. Втравлю эту платку, спаяю, проверю работу подпрограммки декодировки шины, буду приставать с вопросами по "драйверу псевдо-диска HD".
Сейчас на форуме
borisfox
Advanced Member


Откуда: Хабаровск
Всего сообщений: 946
Рейтинг пользователя: 0


Ссылка


Дата регистрации на форуме:
30 июля 2008
Не, насчёт импортной комплектации я говорил про основную часть... А шинные формирователи можно и 531АП2 применить. Это самое простое из всей схемы...

Если диск нужен всего лишь для запуска машины, то проще всего, а главное значительно дешевле, было бы купить родной КЖД от неё, или контроллер IDE разработки pribor...
А если уж затеваться делать, то лучше правильный, а не очередной клон того IDE-адаптера. Просто моё мнение. :)
alecv
Advanced Member


Откуда: Санкт-Петербург
Всего сообщений: 5545
Рейтинг пользователя: 0


Ссылка


Дата регистрации на форуме:
5 окт. 2004
borisfox написал:
[q]
А что, от варианта MSCP отказались? Зря, получился бы стОящий контроллер... Под него и загрузчик в 1201.03 есть...
[/q]
Можно подробнее про загрузчик ? Как он на(вы)зывается ? Он только в -03 ?

Самый простой контроллер с точки зрения интерфейса - это КЖД (DW: ) И система команд простейшая.
borisfox
Advanced Member


Откуда: Хабаровск
Всего сообщений: 946
Рейтинг пользователя: 0


Ссылка


Дата регистрации на форуме:
30 июля 2008
alecv написал:
[q]
Можно подробнее про загрузчик ? Как он на(вы)зывается ? Он только в -03 ?
[/q]
Да, начиная с -03 (ПЗУ РЕ2-134).
@B
$DUn
n - номер устройства


alecv написал:
[q]
Самый простой контроллер с точки зрения интерфейса - это КЖД (DW: ) И система команд простейшая.
[/q]
Но он же жутко неэффективный, и немасштабируемый в смысле объёма дисков...
_Patron_
Member


Откуда: Москва
Всего сообщений: 146
Рейтинг пользователя: 0


Ссылка


Дата регистрации на форуме:
19 дек. 2012
Родной КЖД принимает от драйвера:

1) 10 битов номера цилиндра ( до 1024 цилиндров );

2) 3 бита номера головки ( до 8 головок ).

Следовательно, при 16 секторах по 512 байт на каждой дорожке, максимальная поддерживаемая ёмкость диска = 512*16*1024*8 = 67'108'864 байт.

При имитации КЖД никто не ограничивает количество битов в номере сектора, цилиндра и дорожки, поэтому максимальная адресуемая ёмкость через интерфейс КЖД составляет: 512 байт * 256 секторов * 65536 цилиндров * 65536 головок = 562'949'953'421'312 байт ( 512 терабайт ).
andyTh
Гость

Ссылка

borisfox написал:
[q]
А если уж затеваться делать, то лучше правильный, а не очередной клон того IDE-адаптера. Просто моё мнение.
[/q]
А можно в двух словах про ваше видение правильного контроллера? :)

Мне вот кажется, что на плате контроллера будут только 531АП2, STM32F2хх и батарейка. Разьём(ы) не считаем.
Почему не родной КЖД? Нет их в наших краях лишних.
Т.е. при возможности я его таки куплю, жёсткий диск подходящий (большой и громкий) уже есть.

А так, и новый контроллер освою, и под ДВК чего то сделаю полезное.
Сейчас на форуме
alecv
Advanced Member


Откуда: Санкт-Петербург
Всего сообщений: 5545
Рейтинг пользователя: 0


Ссылка


Дата регистрации на форуме:
5 окт. 2004
Кстати эмулятор КЖД на SD/CF было бы неплохо. Образ диска даже можно хранить на FAT в виде файла типа DWDISK0.IMG
andyTh
Гость

Ссылка

alecv написал:
[q]
Кстати эмулятор КЖД на SD/CF было бы неплохо. Образ диска даже можно хранить на FAT в виде файла типа DWDISK0.IMG
[/q]
С SD/CF всё чуть проще, чем с IDE диском. Не нужно делать 16 бит обмен. :)

Я не против обсудить "ту" часть платы, т.е. интерфейс к диску, но пока задача номер один это сделать железу. Задача номер два - принять/передать байт с шины. Эдакое подобие 065 с выводом в диагностические порт и без регистра статуса.
Сейчас на форуме
borisfox
Advanced Member


Откуда: Хабаровск
Всего сообщений: 946
Рейтинг пользователя: 0


Ссылка


Дата регистрации на форуме:
30 июля 2008
Крупный недостаток КЖД это программный обмен, без ПДП...
Кроме того, если переделать формат его регистров, могут возникнуть сложности с использованием стандартного загрузчика.

Как я видел этот контроллер, когда пару лет назад начал набрасывать его в черновике: управляющий элемент на каком-нибудь сравнительно быстром современном однокристалльном микроконтроллере, буферное ОЗУ 64-128 КБ, конечные автоматы МПИ, ATA, и остальной "glue logic" в FPGA, шинный интерфейс к МПИ, шинный интерфейс ATA (предполагал сделать два канала, на одном два слота CF прямо на плате), второй выведен на разъём IDE.
Основной интеллект предполагался во встроенном ПО микроконтроллера, который реализовывал бы приём и интерпретацию команд протокола MSCP, программировал конечные автоматы на перекачку данных из ATA в буферную память, и из буферной памяти в память основной ЭВМ.
В будущем планировалось также на основе этого ядра реализовать контроллер НМЛ типа СМ5300 с поддержкой протокола TMSCP.

Но впоследствии стало понятно, что для реализации этой задачи у меня нет ни времени, ни сил, ни инструментального оснащения для отладки опытного образца. Одним древним осциллографом это изделие не отладить, а лишних средств на современный инструментарий в настоящее время тоже нет.
bigral
Junior Member


Всего сообщений: 133
Рейтинг пользователя: 0


Ссылка


Дата регистрации на форуме:
6 мая 2012
интересно, откуда в -03 взялся загружчик DU? и если есть загружчик то должно было быть и железо? или просто проводами кидали DEC-овские платы на МПИ?
andyTh
Гость

Ссылка

Я заложил микроконтроллер со 120МГц ядром, по идее его хватит на эмуляцию шины и АТА без дополнительной ПЛИС.
памятью тож более менее нормально, во флешку и загрузчик нестандартный можно поместить. Бонусом идёт разнообразная периферия типа часов, последовательного порта и прочего, но распыляться пока не хочу. Времени тоже особо лишнего нет, но есть желание попаять. Крышу рвёт от схемотехники по работе, нужна отдушина :)
ПДП тоже не большая проблема. В любом случае данные от ДВК и данные от жёсткого диска будут храниться в буферах МК.
Сделать их доступными снаружи большой проблемой не будет.
Я думаю всё реально.
Сейчас на форуме
alecv
Advanced Member


Откуда: Санкт-Петербург
Всего сообщений: 5545
Рейтинг пользователя: 0


Ссылка


Дата регистрации на форуме:
5 окт. 2004
Непонятно, зачем тогда плата процессора и корзина. Сделать уж тогда ДВК с нуля :)
andyTh
Гость

Ссылка

Всему своё время. ;)
Сейчас на форуме
borisfox
Advanced Member


Откуда: Хабаровск
Всего сообщений: 946
Рейтинг пользователя: 0


Ссылка


Дата регистрации на форуме:
30 июля 2008
bigral написал:
[q]
интересно, откуда в -03 взялся загружчик DU?
[/q]
Возможно, на перспективу заложили, может, планировали развивать такие контроллеры, может, уже и были какие-нибудь опытные разработки... На ixbt есть ветка с участием разработчиков этих плат, можно спросить, если ещё помнят...


AndyTh написал:
[q]
Я заложил микроконтроллер со 120МГц ядром, по идее его хватит на эмуляцию шины и АТА без дополнительной ПЛИС.
[/q]
Такая частота ещё больше затруднит макетирование, уже появляются специальные требования к дизайну платы...
Я планировал уложиться максимум в 32 МГц.
Да и неэстетично это, эмулировать всё программно :) И совершенно точно не хватит выводов ОМК, всё равно какая-то обвязка потребуется. ПЛИС тут была бы вполне уместна. ОЗУ, может, внешнее и не нужно, если в микроконтроллере есть достаточный объём.


alecv написал:
[q]
Сделать уж тогда ДВК с нуля
[/q]
А смысл... :)

Это ещё один немаловажный останавливающий фактор - чем тратить время на такой достаточно масштабный проект, лучше что-нибудь полезное наваять. С мелочёвкой повозиться или готовые машины починить это ещё понятно, чтоб практику не потерять, но упираться во что-то серьёзное - например, я с основным и дополнительным местами работы, незаконченным ремонтом в квартире, и кучей других сторонних задач сейчас не готов...
Могу подавать идеи и выступать критиком :)
andyTh
Гость

Ссылка

borisfox написал:
[q]
Такая частота ещё больше затруднит макетирование, уже появляются специальные требования к дизайну платы...
Я планировал уложиться максимум в 32 МГц.
Да и неэстетично это, эмулировать всё программно И совершенно точно не хватит выводов ОМК, всё равно какая-то обвязка потребуется. ПЛИС тут была бы вполне уместна. ОЗУ, может, внешнее и не нужно, если в микроконтроллере есть достаточный объём.
[/q]
Грубо, два десятка ног на QBUS плюс два десятка на АТА. Так что тут всё нормально.
120Мгц во первых - это ядро, во вторых я простил себе жизнь заказав типа оценочную плату, STM32F2 mini
Сделаю плату с разьёмом и АП2, остальное на 2 колодки и вот этот отладочник мезонином.
http://img34.slando.ua/images_...4-kiev.jpg
в третьих дизайн такой платы меня не пугает совершенно.
Старый стал, ленивый. Раньше гораздо более сложные платы утюжил.


borisfox написал:
[q]
Могу подавать идеи и выступать критиком
[/q]
Вот вот :) а то смотрю я на этого микроба импортного и думаю, поставить ВП1-033+034 на шину и к ни доцепить 8051.
IDE привесить прямо в адресное пространство 51го. Прогу во внешней РФ6.
В стиле "духа времени"...
Сейчас на форуме
palsw
Advanced Member


Откуда: Измаил_Украина
Всего сообщений: 317
Рейтинг пользователя: 0


Ссылка


Дата регистрации на форуме:
28 фев. 2015
AndyThпоставить ВП1-033+034 на шину и к ни доцепить 8051.
IDE привесить прямо в адресное пространство 51го. Прогу во внешней РФ6.

Это поинтересней всяких там стм32 и эмуляторов
bigral
Junior Member


Всего сообщений: 133
Рейтинг пользователя: 0


Ссылка


Дата регистрации на форуме:
6 мая 2012
Вот вот!! золотые слова "в стиле духа времени", ведь могли же тогда люди делать это на заре 80-х! А вешать АРМ или пинать полу-стандартную девборду это дело нужное (99% всяких эмбедеров этим только и занимается и получает на этом деньги) НО! согласитесь что только 0,01% из них сидит на этом форуме, так что ЭТО НЕ НАШ МЕТОД! И это совсем не про pdp-11 как и CPLD (PAL/GAL это еще вполне нормальный ход как и многослойные платы).

Хотя надо признать что SCSI контроллеры не обходятся без спец-сбисов от adaptec, MFM контроллеры rqdx1/2 сложные как полноценный pdp11 компьютер типа ук-нц а rqdx3 тоже на диких сбисах построен. Иногда смотрю и удивляюсь НЕУЖЕЛИ не могли сделать "попроще"??? Ну хорошо st412/st506 сложный протокол, тот же немец, который осилил RL02!!! (с DMA??? или не?) уже бьется над ним 3 года. Но SCSI!!!! как я понимаю там железа чуть больше чем в IDE а все остальное это СОФТ преобразователь протокола MSCP>->SCSI http://6502.org/users/andre/cbmhw/scsi/index.html и тем не менее на платах scsi стоят сбисы! pal/gal и куча рассыпухи и еще какой-нибудь i8086...

И вот еще что хотел сказать, на pdp11 часто можно найти GPIB http://en.wikipedia.org/wiki/IEEE-488
как я понимаю шина чем-то смахивает на SCSI, есть какие-то драйверы в системах и примеры програмирования из BASIC PLUS, i8291 - GPIB Talker/Listener; i8292 - GPIB Controller; i8293 - GPIB Transceiver наши аналоги валяются на барахолке и сжигаются тоннами как никому ненужный мусор а между тем возможен ли "выносной вариант" в стиле дисководов от УК-НЦ с применением этих чипов? Тогда бы решился вопрос с контроллером "невысокой" интеграции понимающем MSCP на "полуплату". Связка типа МПИ MCS-51+GPIB>-шлейф наружу->GPIB+IDE ?
borisfox
Advanced Member


Откуда: Хабаровск
Всего сообщений: 946
Рейтинг пользователя: 0


Ссылка


Дата регистрации на форуме:
30 июля 2008
SCSI - мягко скажем, весьма сложный интерфейс. С достаточно развесистым протоколом. Попробуйте реализовать его на рассыпухе - может не хватить места во всей корзине... Не говоря уже о том, насколько медленно всё это будет работать, как будет греться, и какая будет наработка на отказ...
Хороший пример реализации значительно более простых вещей на ИС малой и средней степени интеграции - КНГМД и КЖД. Приходилось чинить? :) В КЖД уже частично БИС есть, клон набора MFM интерфейса Western Digital 1100.

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


AndyTh написал:
[q]
поставить ВП1-033+034 на шину и к ни доцепить 8051.
[/q]
Для данной задачи такой параллельный интерфейс будет дико медленным...
MM
Advanced Member


Откуда: Павловский Посад Мск.обл.
Всего сообщений: 3418
Рейтинг пользователя: 0


Ссылка


Дата регистрации на форуме:
2 авг. 2013
Господа, заинтересованные в контроллере IDE для ДВК - напишите, кто из Вас умеет программировать на ассеблере типа Macro-11 ( или на похожем, для ДВК/БК/УКНЦ ).
Есть возможность простыми средствами решить проблему IDE для ДВК/УКНЦ .
borisfox
Advanced Member


Откуда: Хабаровск
Всего сообщений: 946
Рейтинг пользователя: 0


Ссылка


Дата регистрации на форуме:
30 июля 2008
Я умею.
Но зависит от масштабности задачи, т.к. выделить много времени нет возможности.

Так простыми средствами задача же уже решена?...
andyTh
Гость

Ссылка

borisfox написал:
[q]
AndyTh написал:
[q]
поставить ВП1-033+034 на шину и к ни доцепить 8051.
[/q]
Для данной задачи такой параллельный интерфейс будет дико медленным...
[/q]
Простой микроконтроллер "того времени" просто не будет в состоянии программно обрабатывать шину с приемлемой скоростью да и всю машину затормозит прилично. Интерфейс должен быть аппаратным. Под рукой нет букваря с времянками 033 и 034, но медленный так медленный.
А без них дешифратор адресов и разбиралка адрес-данные уж больно развесиста.
(Смотрим контроллер Прянишникова) Не хочу я суда килограмм микросхем.
Я очень люблю большие и золотые платы, но запуститься и "пощупать" задачу имеет смысл одной микросхемой вместо десятка.
(кто из желающих повторить сможет прошить РФ6? :) )


Вопрос, для другой задачи я хотел попробовать 033 как мультиплексор 2 входа 1 выход. Он действительно медленный?
Сейчас на форуме
MM
Advanced Member


Откуда: Павловский Посад Мск.обл.
Всего сообщений: 3418
Рейтинг пользователя: 0


Ссылка


Дата регистрации на форуме:
2 авг. 2013
Для тех, кто знает ассемблер ДВК.
Есть такой замечателный контроллер КНГМД от БК11М, на основе 1801ВП1-128, его некотрый функциональный аналог есть и на ДВК, но на слегка другой элементной базе - с использованием 2 шт. 556РТ7 в качестве ПЗУ программного кода управления ВП1-128.
Так вот, насчет блока КНГМД для БК11М. Этот блок содержит ПЗУ 1801РЕ2-326 и имеет следующие точки входа ( подпрограммы ):
1. 160000 - автоматическая загрузка с дисков ( без параметров )
2. 160002 - загрузка с выбранного привода, номер привода - в R0
3. 160004 - чтение - запись логического блока, параметры :
.R0 - номер блока на диске
.R1 - длина пересылаемого массива данных
.R2 - начальный адрес массива данных
.R3 - базовый адрес рабочей области драйвера ( длина области - 64 ( 8 ) )
4. 160006 - чтение - запись по номеру сектора и дорожки ( в RT-11 не используется )
5. 160010 - инициализация рабочей области ( длина области - 64 ( 8 ) )
6. 160012 - форматирование дорожки , R3 - адрес рабочего блока параметров
Соответственно, можно переписать текст этой прошивки ( размер - 10000 ( 8 ) ), и назначить диски с 3 ( и старше ) - как винчестеры. Драйвер для RT-11, который заведомо пойдет в RT11SJ.SYS - BY.SYS, размер - небольшой.
Регистры IDE целесообразно расположить в адресах 177720 - 177756 с пословной адресацией.
Задача программиста - написать подпрограммы :
1. Чтение блока с винчестера.
2. Запись блока на винчестер.
3. Форматирование ( дорожки, или скорее логической дорожки - т.к. в IDE-винтах не все так просто, как с гибкими дисками ).
Для упрощения задачи можно игнорировать стандартную организацию расположения разделов винчестера, и начинать прямо с 000000 сектора.
Длина условно свободного места в 1801РЕ2-326 - порядка 4000 ( 8 ), но там сидит арифметический расширитель 10 вектора, который абсолютно нигде не применяется и может быть удален ( т.е. текст РЕ2-326 может быть сокращен до текста РЕ2-253, где расширенная арифметика отсуствует ).
Для отладки софта рекомендую использовать эмуль ПЗУ на СОЗУ.
Плата универсального контроллера IDE, имеющего возможность работать с указанными регистрами IDE, имеется в продаже и содержит входные буферы на КР531АП2 - для корзинки ДВК, но не совместима механически с корзинкой ДВК.
На плате имеются непринципиальные ошибки разводки, устранимые 1 метром МГТФ. Цена платы - 700 руб. в Москве.Почта возможна. Э3 платы :
http://s017.radikal.ru/i433/1308/d4/01416f476373.jpg
http://i011.radikal.ru/1309/02/718748f7fb22.jpg - получше выглядит
http://s017.radikal.ru/i429/1308/a0/db13c465e53c.jpg
Часть Э3 с контроллером дисков МС5311 полностью совместима с блоком КНГМД, но не содержит ПЗУ.
Обсуждение :
http://bk0010.org/forum/?id=14779
bigral
Junior Member


Всего сообщений: 133
Рейтинг пользователя: 0


Ссылка


Дата регистрации на форуме:
6 мая 2012
AndyTh написал:
[q]
Простой микроконтроллер "того времени" просто не будет в состоянии программно обрабатывать шину с приемлемой скоростью да и всю машину затормозит прилично.
[/q]
Вот пример того как приходилось делать людям в то время http://www.ni.com/pdf/manuals/320006.pdf, тут применили i8291 (ВГ91) как кодирующий сбис для IEEE-488 НО, в принципе для IDE схема похожая должна быть (в том плане что схема реализации устройства с прерываниями и DMA должна подходить вообще ко всем видам QBUS контроллеров).

В принципе становится понятно зачем стоят сбисы в тех же самых ST506 или SCSI контроллерах, они там стоят изза того что клепать те же функции на микроконтроллере это еще 1 микроконтроллер добавлять на плату и firmware воротить а затраты на это превысили бы стоимость этих сбисов.

Тут весь вопрос в том сможет ли mcs-51 контроллер (ну или на крайняк AVR) обеспечить MSCP декодирование и одновременно программирование IDE PIO4/ATA ? Хватит ли ему скорости при условии что весь transfer идет через отдельную схему DMA? Экстремальные дизайны с двумя микроконтроллерами 1 для MSCP а второй для IDE с внутренней шиной типа I2C это вообще мрак.

Так или иначе размер платы светит не меньше чем RQDX1/2 и притом слоев 4 ато и 6... В принципе переплюнуть DEC на "той" элементарной базе ЯВНО НЕ ВЫЙДЕТ. пример - http://bitsavers.informatik.un...UG-001.pdf (там еще и мини-risc alu/cpu действует в помощь t11)

Но вариант SOFT-эмуля когда на QBUS шине висит 100Mhz контроллер и эмулирует MSCP устройство на SD карте за счет своей бешенной скорости тоже никакой не феншуй :)
andyTh
Гость

Ссылка

bigral написал:
[q]
Вот пример того как приходилось делать людям в то время http://www.ni.com/pdf/manuals/320006.pdf, тут применили i8291 (ВГ91) как кодирующий
[/q]
Сначала мы художника обижаем, а потом

bigral написал:
[q]
Тут весь вопрос в том сможет ли mcs-51 контроллер (ну или на крайняк AVR) обеспечить MSCP декодирование и одновременно программирование IDE PIO4/ATA ?
[/q]
Вот смотрим 51, он 12 тактовый. Максимальная тактовая 16Мгц, на команду тратится 1-2 цикла, т.е подёргать ножкой быстрей чем килогерц 200-300 не выйдет. Если шину эмулировать программно, всё очень грустно. А ведь нужно в буферы IDE писать/читать.
С AVR несколько веселее, но таки если ставить этот новодел, чем он лучше STMки?


bigral написал:
[q]
Но вариант SOFT-эмуля когда на QBUS шине висит 100Mhz контроллер и эмулирует MSCP устройство на SD карте за счет своей бешенной скорости тоже никакой не феншуй
[/q]
Городить плату на десятках корпусов там, где достаточно одного... Ну не знаю. И почем сразу SD? Мне больше по душе IDE диск, хотя карточка будет проще в реализации.
Про один я несколько погорячился. Драйверы Qbus и драйверы IDE будут нелишними :)
Сейчас на форуме
ys05
Advanced Member


Откуда: spb
Всего сообщений: 389
Рейтинг пользователя: 0


Ссылка


Дата регистрации на форуме:
27 фев. 2012
bigral написал:
[q]
интересно, откуда в -03 взялся загружчик DU? и если есть загружчик то должно было быть и железо? или просто проводами кидали DEC-овские платы на МПИ?
[/q]
Такое?
http://www.dropbox.com/s/41lvuzwj94awd7x/IMG_4955A.jpg
MM
Advanced Member


Откуда: Павловский Посад Мск.обл.
Всего сообщений: 3418
Рейтинг пользователя: 0


Ссылка


Дата регистрации на форуме:
2 авг. 2013
Уважаемый господин ys05 продемонстрировал одноплатку - что это за контроллер такой с 48-пин коннектором ?
Зелень, там, конечно, кто-то почикал...
По наличию неплохого наборчика 500-й могу предположить, что данные поступали по балансным линиям - как в КЖД ДВК поступали данные с винта.
*
Оффтоп : пару лет назад я сидел на 1-м этаже, и как-то осенью 2012-го нашел в мусорке один развесистый контроллер без зеленки, и решил его восстановить - запаять зелень в соответствии с Э3. Ну, значит, я увлеченно занимаюсь восстановлением, и замечаю, что через окно кто-то пристально наблюдает за процессом. Ну, подумал, гасторы из соседнего цеха смотрят, что бы такого ночью позаимствовать... Через 5 минут приходит сосед, слегка навеселе, и заявляет : - во истину, конец света настает, мы значит во всю стрижкой занимаемся, а вы типа их обратно запаиваете ?!
borisfox
Advanced Member


Откуда: Хабаровск
Всего сообщений: 946
Рейтинг пользователя: 0


Ссылка


Дата регистрации на форуме:
30 июля 2008
AndyTh написал:
[q]
Вопрос, для другой задачи я хотел попробовать 033 как мультиплексор 2 входа 1 выход. Он действительно медленный?
Под рукой нет букваря с времянками 033 и 034, но медленный так медленный.
[/q]
Во втором томе Шахнова расписан.
Возможно, я погорячился, и он не столь уж медленный, хотя для 16-разрядного регистра потребуется 033 + 2 x 034.
К циклу добавит, возможно, нс 150-200. Попробуйте замерить, заодно и узнаем. :)


AndyTh написал:
[q]
И почем сразу SD? Мне больше по душе IDE диск, хотя карточка будет проще в реализации.
[/q]
Вместо SD карточек лучше применить CF, они совместимы с ATA по интерфейсу.


ys05 написал:
[q]
Такое?
http://www.dropbox.com/s/41lvuzwj94awd7x/IMG_4955A.jpg
[/q]
Интересная железка. А к какому устройству интерфейс?


MM написал:
[q]
Плата универсального контроллера IDE, имеющего возможность работать с указанными регистрами IDE, имеется в продаже
[/q]
Это клон УКНЦ-шного контроллера, или полностью другой?
Никак не привыкну к схемам в буржуйском формате, меня эти странные УГО высекают...
Чтобы программировать, нужно описание регистров и порядка работы... Документации пока никакой нет?
MM
Advanced Member


Откуда: Павловский Посад Мск.обл.
Всего сообщений: 3418
Рейтинг пользователя: 0


Ссылка


Дата регистрации на форуме:
2 авг. 2013
По поводу ТО мультикарты - здесь написал немного :
http://www.forum.pk-fpga.ru/viewtopic.php?f=54&t=5455
Если в кратце, то IDE - канал сделан настрайваемым - под все возможные варианты доступа, включая СМК ( 177720-177737, доступ к нечетным словам ) и Самарский вариант ( 177620-177656, попадает на ДП 1801ВМ3 ) . Отмечу, что к Самарскому варианту есть готовый вариант ПЗУ - т.е. фактически вопрос с IDE для ДВК2, по непроверенной мною информации, решен уже лет 15 как - т.е. работа с МС1201.01 и МС1201.02.
Порекомендую ориентироваться на специальный формат регистра IDE для 1801ВМ3 - адреса 177720-177756 - т.е. Самарский вариант + 100 ( 8 ) по адресам.
Да, к сожалению, проектирование Э3 проводилось не по ГОСТ - в каком-то неясном редакторе.
В продаже есть приблизительно 7 шт. ДПП - т.е. весь тираж. Там же и USB-модули по 350 руб. есть в продаже - 6 или 5 шт. осталось, новые.( Чип Cypress SL811 , все режимы, 8 бит, есть настраиваемый VIRQ, DMA - не реализовано в мультикарте ).
Разыскивал тут писателя кода для приделывания USB1.1 к RT-11 - ненашлось головастых, а у меня недостает квалификации для изучения протокола USB1.1 - это скользкий моноканал с развесистым протоколом, которым надо управлять чуть ли не побитно.
Кстати, всего продано было 1 шт. такой платы в сборе - программеру gid с форума БК10.орг .
Для отладки IDE - канала применял самопальный стендик - показывал на лампочках номер регистра винчестера и контент данных в нем.
Из недостатков рассматриваемой платы отмечу :
1. Отсуствие колодки ПЗУ в составе платы - но все равно надо применять эмулятор ПЗУ для отладки дров.
2. Ошибка разводки, устранима.
3. Для работы с МС1201.03/04 надо приделать звщелку сигнала BS7 - что бы ВП1-128 не размазывалась по высшим адресам, т.е. при отсуствии сигнала BS7 исключить прохождение сигналов DIN and DOUT до ВП1-128, а так же в ПЗУ 1801РЕ2-326 ( или в самодельное ).
*
На вопрос о совместимости с УКНЦ - это принципиально другой контроллер, но его можно ( через полностью пассивный переходник ) прицеплять к главному процессору УКНЦ - т.е. через телеграфный слот.
borisfox
Advanced Member


Откуда: Хабаровск
Всего сообщений: 946
Рейтинг пользователя: 0


Ссылка


Дата регистрации на форуме:
30 июля 2008
Получается, плата просто выполняет отображение набора регистров IDE в адресное пространство страницы ввода-вывода?
Какой стандарт ATA реализован? Как отображаются адреса, какой адрес какому регистру соответствует?
(особенно в режиме расположения регистров через 1 байт, т.к. в ATA некоторые всё-таки 16-разрядные)
Поддерживаются ли прерывания? Работа в режимах ATA DMA, насколько понимаю, не реализована?

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

Реализовать поддержку USB программно именно для RT-11, по-моему, малореально, код просто не вместится в виртуальное адресное пространство, настолько там сложный протокол. В других ОС, где код драйвера может пересекать эти границы - ещё может быть... Но, насколько помню, в 2.9BSD / Демос тоже не может, и там приходилось ужимать ядро в объёме 48 или 56 КБ. Если напихать в него слишком много, при сборке выдавалась соответствующая ошибка. Особенно критично это было на non-separate I/D машинах. Как в RSX, RSTS, MUMPS и т.п. - не знаю, с ними работать не приходилось.

Да и для каких классов устройств USB делать поддержку? И в каком объёме? Надо сначала определиться с техническим заданием, что именно хочется получить...
Теоретически можно сделать в каком-нибудь адаптере-прослойке, на микроконтроллере, в современных ресурсов дочёрта... К ЭВМ будет какой-нибудь простой интерфейс, понятно, что значительно менее гибкий. Но контроллер при этом окажется на порядок "умудрённее" всей ЭВМ.
Anonymous
Advanced Member


Откуда: Москва(Россия)
Всего сообщений: 2537
Рейтинг пользователя: 0


Ссылка


Дата регистрации на форуме:
22 нояб. 2011
borisfox написал:
[q]
Интересная железка. А к какому устройству интерфейс?
[/q]
К MFM-дискам. У меня есть несколько альбомов с листингами прожига ПЛМ к нему, в ужасном качестве копия - hex-коды почти неразбираемы. Аналогичный контроллер, только в другом конструктиве, в СМ1425 используется, и там два флопа им же поддерживается. На него есть альбом с описанием и структурными схемами, но нет принципиальных. И нет листингов программы управляющей под оба контроллера, увы. Когда-то MSCP я воспроизвести тоже хотел, но не собрал достаточно инфы. Потому SCSI сделал собственный и успокоился на том.

MM написал:
[q]
Чип Cypress SL811 , все режимы, 8 бит, есть настраиваемый VIRQ, DMA - не реализовано в мультикарте
[/q]
DMA в режиме хоста чип и не использует сам.

MM написал:
[q]
т.е. при отсуствии сигнала BS7 исключить прохождение сигналов DIN and DOUT до ВП1-128, а так же в ПЗУ 1801РЕ2-326 ( или в самодельное ).
[/q]
Достаточно Sync не пропускать на них, типа так http://qbus.narod.ru/sync128.jpg
Anonymous
Advanced Member


Откуда: Москва(Россия)
Всего сообщений: 2537
Рейтинг пользователя: 0


Ссылка


Дата регистрации на форуме:
22 нояб. 2011
borisfox написал:
[q]
Какой там вариант- не знаю, не изучал подробно вопрос. Насколько помню, была сделана по мотивам УКНЦ-шного контроллера...
[/q]
Там простейшая такая же схема, использующая прерывания только еще, в отличие от схемы ММ. Микроконтроллер на плате используется только для начальной загрузки, DMA не влезало в примененную плиску и применена она была сугубо для защиты авторских прав при продаже контроллеров на производство, чтоб там контроллер не расклонировали.

borisfox написал:
[q]
Да и для каких классов устройств USB делать поддержку? И в каком объёме? Надо сначала определиться с техническим заданием, что именно хочется получить...Теоретически можно сделать в каком-нибудь адаптере-прослойке, на микроконтроллере, в современных ресурсов дочёрта...
[/q]
Тот же клуб еще в 2010 году сделал платку модуля USB с микроконтроллером, позволяющую ее как в прозрачном режиме использовать для обмена данными с устройством на усб, так и работать с fat32 на флашках средствами набортного контроллера. Но никуда проект не пошел далее, хотя 13к руб. на него было выкинуто. Как память о нем, у меня усб-контроллер на базе его для эвм Беста остался, втыкаемый в rs232. :)
borisfox
Advanced Member


Откуда: Хабаровск
Всего сообщений: 946
Рейтинг пользователя: 0


Ссылка


Дата регистрации на форуме:
30 июля 2008
А куда оно могло пойти, круг потенциальных покупателей старья-новодела ещё меньше, чем покупателей этого старья вообще...
Лично мне интересны главным образом оригинальные изделия тех лет. Новодел делаю пока только для себя, в основном технологическую оснастку для стенда.

Цену за простейший IDE контроллер в 10 тысяч рублей считаю завышенной, поэтому вряд ли когда приобрету.
Но хороший быстрый контроллер ATA/CF с MSCP за эти деньги я бы купил. :) Главным образом опять же для стенда, чтоб не возиться с дискетами при ремонтах. Ну и в инструментальную машину можно, на которой разрабатывается и отлаживается софт.
Только его разработка обойдётся в гораздо большую сумму, и он опять никогда не окупится при единичных продажах.
Поэтому я ни на какой коммерческий успех ретрокомпьютинга не надеюсь, это чисто дотационное хобби, причём иной раз затраты выливаются в весьма немалые деньги...
andyTh
Гость

Ссылка

borisfox написал:
[q]
Вместо SD карточек лучше применить CF, они совместимы с ATA по интерфейсу.
[/q]
Я чуть о другом, применение SD или CF позволяет сделать весь тракт восьмибитным, что несколько упростит конструкцию и софт.
Сейчас на форуме
Anonymous
Advanced Member


Откуда: Москва(Россия)
Всего сообщений: 2537
Рейтинг пользователя: 0


Ссылка


Дата регистрации на форуме:
22 нояб. 2011
AndyTh написал:
[q]
Я чуть о другом, применение SD или CF позволяет сделать весь тракт восьмибитным, что несколько упростит конструкцию и софт.
[/q]
По-моему - наоборот, т.к. адрес в контроллере памяти инкрементируется на слово при блочной ПДП-пересылке, придется собирать байты в локальное FIFO с записью 8-битовой и 16-битовым чтением.
andyTh
Гость

Ссылка

Я почему то считал, что наоборот. Драйвер выдаёт контроллеру 8битные слова. И уже контроллер клеит из них 16битные слова данных для жёсткого диска. Есть ли более менее готовый драйвер для работы с ПДП? Насколько я понял, "стандартные" драйвера ПДП не используют. Или вообще работают на уровне поверхность-цилиндр-сектор.
Сейчас на форуме
borisfox
Advanced Member


Откуда: Хабаровск
Всего сообщений: 946
Рейтинг пользователя: 0


Ссылка


Дата регистрации на форуме:
30 июля 2008
AndyTh написал:
[q]
Драйвер выдаёт контроллеру 8битные слова. И уже контроллер клеит из них 16битные слова данных для жёсткого диска.
[/q]
А в чём смысл такого усложнения работы на 16-разрядной архитектуре? Понятно было бы, если б контроллер проектировался для 8-разрядной платформы...


AndyTh написал:
[q]
Есть ли более менее готовый драйвер для работы с ПДП? Насколько я понял, "стандартные" драйвера ПДП не используют.
[/q]
Есть, конечно (самый, наверное, простой - драйвер КМД, "MY"). Устройств с ПДП для этой архитектуры наработано множество. Общая идея - дать контроллеру команду с параметрами, в числе которых будет физический адрес, откуда считать или куда положить данные. Контроллер в ходе её выполнения осуществляет обмен данными с этой областью памяти.
Команда, в свою очередь, тоже может быть оформлена в виде дескриптора в памяти, который контроллер также читает методом ПДП (и иногда таким же способом помещает туда же результат выполнения).


AndyTh написал:
[q]
Или вообще работают на уровне поверхность-цилиндр-сектор.
[/q]
А это же вообще к способу обмена не относится. Это всего лишь метод адресации.
_Patron_
Member


Откуда: Москва
Всего сообщений: 146
Рейтинг пользователя: 0


Ссылка


Дата регистрации на форуме:
19 дек. 2012
AndyTh написал:
[q]
Насколько я понял, "стандартные" драйвера ПДП не используют. Или вообще работают на уровне поверхность-цилиндр-сектор.
[/q]
Драйвер нужен для отображения универсального формализма запросов операционной системы ( номер блока ) в конкретный формализм запросов конкретного контроллера.

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

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

Ссылка

Это понятно, но я хотел схитрить и использовать какой нибудь стандартный драйвер, сэмулировав это устройство.
Хотя, если знатоки ДВК помогут с драйвером и загрузчиком, то проблем нет.

У меня тут пока два локальных горя.
Плату с STM никак не отправят, завтраками кормят. Не могу ответку под неё развести на плате контроллера.
Второе горе может быть полезно :) КЦГД через переходник CGA-VGA не работает, точнее особо умные мониторы игнорят сигнал. LCD изображение не кажет вообще, хотя индикатор режимов горит так, как и при нормальном сигнале. ЭЛТ кажет бегущие кадры с надписью и через некоторое время проц переводит монитор в спячку.
Сейчас на форуме
MM
Advanced Member


Откуда: Павловский Посад Мск.обл.
Всего сообщений: 3418
Рейтинг пользователя: 0


Ссылка


Дата регистрации на форуме:
2 авг. 2013
Драйвер USB для RT-11, особенно заточенный под какой-нибуть простой аппарат вполне поместится в 4-10 блоков, например клавиатура. Даже есть пример написания - на сайте Кипариса, но на ихнем специфическом ассемблере для какой-то уникальной однокристалки.
Было бы чудесненько приделать по USB к RT-11 внешние винчестер и дисковод 1.44, да еще с конвертацией каталогов с ФАТ в RT-11.
*
Готовая мультикарта была продана за 5 т.р.
andyTh
Гость

Ссылка

Не сильно хочется сейчас махать шапками, но тот же USB без видимых особых проблем поднимается на том же STM32, где нет таких ограничений по памяти.
Сейчас на форуме
borisfox
Advanced Member


Откуда: Хабаровск
Всего сообщений: 946
Рейтинг пользователя: 0


Ссылка


Дата регистрации на форуме:
30 июля 2008
AndyTh написал:
[q]
Это понятно, но я хотел схитрить и использовать какой нибудь стандартный драйвер, сэмулировав это устройство. Хотя, если знатоки ДВК помогут с драйвером и загрузчиком, то проблем нет.
[/q]
Драйвер это уже мелочи, напишем, если железо будет работать.


AndyTh написал:
[q]
Второе горе может быть полезно КЦГД через переходник CGA-VGA не работает, точнее особо умные мониторы игнорят сигнал. LCD изображение не кажет вообще, хотя индикатор режимов горит так, как и при нормальном сигнале. ЭЛТ кажет бегущие кадры с надписью и через некоторое время проц переводит монитор в спячку.
[/q]
А что за конвертер?
У меня три варианта, и каждый, что называется, хорош по-своему, какой-то лучше работает с какими-то машинами, какой-то хуже... Я также за несколько крайних лет постепенно набрал универсальные конвертеры Kramer VP-740 в достаточном количестве.
_Patron_
Member


Откуда: Москва
Всего сообщений: 146
Рейтинг пользователя: 0


Ссылка


Дата регистрации на форуме:
19 дек. 2012
AndyTh написал:
[q]
я хотел схитрить и использовать какой нибудь стандартный драйвер, сэмулировав это устройство
[/q]
Ничто не мешает сэмулировать вообще все устройства в одном контроллере, но начать проще всего с абстрактного устройства, которое без выдумывания всяких дорожек и секторов просто читает/пишет нужный блок ( по его номеру от начала диска, который сообщила в драйвер операционка ).
alecv
Advanced Member


Откуда: Санкт-Петербург
Всего сообщений: 5545
Рейтинг пользователя: 0


Ссылка


Дата регистрации на форуме:
5 окт. 2004
andyTh
Гость

Ссылка

borisfox написал:
[q]
А что за конвертер?
У меня три варианта, и каждый, что называется, хорош по-своему, какой-то лучше работает с какими-то машинами, какой-то хуже... Я также за несколько крайних лет постепенно набрал универсальные конвертеры Kramer VP-740 в достаточном количестве.
[/q]
С КЦГД частота кадровая повышенная идёт, ваши платы подключали к нему?

http://www.weiya.com.tw/products.asp?le=english&fid=111

вот такая плата MODEL: ACV-011

DIP переключателями можно менять режим конвертации. Удобная игрушка. Но с ДВК не пошла. Я уж думал, что SyncOnGreen мешает работе выделялки синхросмеси. Напаял LM1881, не помогло. Хотя со спектрумами и прочим подобным добром работает нормально.


_Patron_ написал:
[q]
Ничто не мешает сэмулировать вообще все устройства в одном контроллере, но начать проще всего с абстрактного устройства, которое без выдумывания всяких дорожек и секторов просто читает/пишет нужный блок ( по его номеру от начала диска, который сообщила в драйвер операционка ).
[/q]
Я вообще пока не выплюну в диагностический порт символ переданный от ДВК, ни на что великое не замахиваюсь. :)
Будет железо, будем играться.
Сейчас на форуме
andyTh
Гость

Ссылка

alecv написал:
[q]
http://opencores.org/project,w11
http://pdp2011.sytse.net/wordpress/pdp-11/

http://code.google.com/p/bk0010/
[/q]
Так не честно. Процессор должен быть большим и керамическим :)
Сейчас на форуме
bigral
Junior Member


Всего сообщений: 133
Рейтинг пользователя: 0


Ссылка


Дата регистрации на форуме:
6 мая 2012
ys05 написал:
[q]
Такое?
http://www.dropbox.com/s/41lvuzwj94awd7x/IMG_4955A.jpg
[/q]
Жеееесть! похоже 1:1 передранный RQDX1!? Но это ж Воронеж, на скоко я понимаю там ДВК не признавали, равно как и в Зеленограде не любили Э60. Хотя вообще не ясно на чем тогда они грузили свои vax эмуляторы если не на этом контроллере, vms явно про dec pro-шный КЖД знать не мог...

Может еще какие-то фоты есть из Воронежа? Я теперь не удивлюсь если DSSI контроллер увижу передранный на МПИ с вот этого http://www.compsy.de/moduls/gifs/M7769-a.jpg
MM
Advanced Member


Откуда: Павловский Посад Мск.обл.
Всего сообщений: 3418
Рейтинг пользователя: 0


Ссылка


Дата регистрации на форуме:
2 авг. 2013
alecv написал:
[q]
http://opencores.org/project,w11
http://pdp2011.sytse.net/wordpress/pdp-11/

http://code.google.com/p/bk0010/
[/q]
Отличные проекты, но понимания советской действительности не особо имеют.
А дествительность такова :
Имеется корзинка ДВК с самопальными контроллерами, терпящими 500-нс цикл МПИ. Соответственно, нужна просто главная процессораная плата с 4-мя метрами ОЗУ 0-тактов, с графическим контроллером не хуже 15-ИЭ-0013, ядром именно 1801ВМ3 - 50 мгц ( не J-11, там есть специфические ограничения ) и небольшой внутренней параллельной шиной на полной частоте процессора - для опытов. Вот такая штука интересует не менее 10 чел, они вполне могут по $200 за неё выложить.
andyTh
Гость

Ссылка

MM написал:
[q]
Вот такая штука интересует не менее 10 чел, они вполне могут по $200 за неё выложить.
[/q]
Я боюсь, что только стоимость партейки из десятка 4-6 слоек + соответствующие гайки на них, без учёта всего остального далеко перевалит за 2К$. Только на уровне хобби с глубоким минусом по железу.
Сейчас на форуме
MM
Advanced Member


Откуда: Павловский Посад Мск.обл.
Всего сообщений: 3418
Рейтинг пользователя: 0


Ссылка


Дата регистрации на форуме:
2 авг. 2013
Насколько я понял из описания pdp2011, там многослойка тренировочная стоит $150 с плюшкой, в которую входит много чего - кроме ОЗУ.
Если, например, сделать маленькие 6СПП с плюшкой и ОЗУ, а усилители МПИ и разъемы с конденсаторами ставить на ДПП размера полуплаты ДВК - может, в $250 - 300 можно уложится будет. ( 6СПП приделывать на большую ДПП на разъемах типа штыри )
Мечты ...
andyTh
Гость

Ссылка

Да нет, не мечты. Мы с программером когда сигнальники осваивали, плата с DSP, памятью, шустрым АЦП и DDS делалась ЛУТом, травилась, пропаивалась... и работала... Романтика :)
Потом сделали именно такую демоплатку с процом, памятью и необходимой обвязочкой. И уже её на штырях садили в макеты. Так что подход вполне разумен и реален.
Плата то тренировочная может и стоит 150, но как минимум тиражом тысяч 10 и можно ли в ней завести проц на 50Мгц вопрос.
Сейчас на форуме
borisfox
Advanced Member


Откуда: Хабаровск
Всего сообщений: 946
Рейтинг пользователя: 0


Ссылка


Дата регистрации на форуме:
30 июля 2008
AndyTh написал:
[q]
С КЦГД частота кадровая повышенная идёт, ваши платы подключали к нему?
[/q]
60 Гц.
К ДВК подключал пока только Kramer, работает нормально. Но он вообще всеядный...
Остальные проверить с КЦГД пока руки не дошли, но это в планах есть. Расхлебаюсь с ревизией и ремонтом плат - займусь экспериментами, а то скопилось уже две здоровых коробки...


AndyTh написал:
[q]
вот такая плата MODEL: ACV-011
[/q]
У меня есть ихняя ACV-012. Нормально работает с УКНЦ (правда, в отдельных экземплярах не всегда хватает уровня синхросигнала, приходится немного подбирать режим выходного эмиттерного повторителя). Sync on Green без внешних примочек не поддерживает...

Также есть Cypress CM-397 и Gonbes GBS-8219.

Возвращаясь к самой исходной задаче: может, просто собрать тот переходник CTI-Q22, и этим ограничиться? :)
andyTh
Гость

Ссылка

borisfox написал:
[q]
К ДВК подключал пока только Kramer, работает нормально. Но он вообще всеядный...
Остальные проверить с КЦГД пока руки не дошли, но это в планах есть. Расхлебаюсь с ревизией и ремонтом плат - займусь экспериментами, а то скопилось уже две здоровых коробки...
[/q]
Да, крамер делает неплохое оборудование. Сегодня перепробовал 3 монитора и таки получил картинку.

Правда половина первого символа слева обрезается. И это при полностью "выкрученой" регулировке положения по горизонтали.
Ну хоть так. Хотя синхра, проходящая на выход зелёного цвета подкрашивает и подшумливает картинку. СЦС эта плата не вырезает почему то. Ну или я не знаю как заставить её это делать.

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


borisfox написал:
[q]
Возвращаясь к самой исходной задаче: может, просто собрать тот переходник CTI-Q22, и этим ограничиться? :)
[/q]
Та ну, уже не интересно. Переходник не очень то и сложный, но и НВ2 ушёл в утиль, и контроллер таки поковырять хочется.
Сейчас на форуме
alecv
Advanced Member


Откуда: Санкт-Петербург
Всего сообщений: 5545
Рейтинг пользователя: 0


Ссылка


Дата регистрации на форуме:
5 окт. 2004
AndyTh написал:
[q]
Так не честно. Процессор должен быть большим и керамическим :)
[/q]
Дак оттуда можно периферии надергать.
andyTh
Гость

Ссылка

Можно, но я не плисописатель. Может когда нибудь потом :)
Сейчас на форуме
andyTh
Гость

Ссылка

Видел странное :)
Сижу играюсь с ВЖА конвертором и вот при очередном передёргивании питания ДВКшка заговорила на английском. Никогда не видел раньше такого. Следующая перезагрузка вернула родной язык.



Сейчас на форуме
bigral
Junior Member


Всего сообщений: 133
Рейтинг пользователя: 0


Ссылка


Дата регистрации на форуме:
6 мая 2012
Так это ж КЦГД показал такое? В нем как я понимаю есть поддержка русского вот она и переключилась на латынь случайно, или я не о том?
andyTh
Гость

Ссылка

А ведь и действительно, показал то КЦГД. Любопытный сбой. На всякий случай, клавиатура подключена не была.

ПыСы отладочничек забрал. Завтра продолжу вырисовывать платку.
Сейчас на форуме
SKcorp
Advanced Member
Эксперт.

Откуда: Leningrad, USSR
Всего сообщений: 3005
Рейтинг пользователя: 0


Ссылка


Дата регистрации на форуме:
28 июля 2008
AndyTh написал:
[q]
А ведь и действительно, показал то КЦГД. Любопытный сбой. На всякий случай, клавиатура подключена не была.
[/q]
Просто в русский режим "терминал" не перешел.
Хотя обычно такое бывает в процессе работы, а не при старте.

borisfox
Advanced Member


Откуда: Хабаровск
Всего сообщений: 946
Рейтинг пользователя: 0


Ссылка


Дата регистрации на форуме:
30 июля 2008
КЦГД просто запустился чуть позже, чем микроЭВМ, и начало вывода с символом переключения кодовой страницы потерялось...
andyTh
Гость

Ссылка

В общем как то так получается. Ножек малость не хватило.
Зато одну АП2 можно выкинуть.
С другой стороны, может и не в UDMA счастье. Даже в PIO0 скорость по идее получается 3,3 MB/s



С третьей стороны, запустится это, на чистовую плат 100 ножку поставить всегда можно.
Сейчас на форуме
andyTh
Гость

Ссылка

Пока экспонируются шаблоны, сижу играюсь.

Одна из плат КЦГД, если её установить ниже процессорной на экране кажет мигающий курсор и не реагирует на клавиатуру.
Вставленная выше процессорной, работает, но приветственный адрес кажет не @ 10000, а @ 10664.
Прошивка 181. Фича или таки канал АП2 с сигналом BIAK0 битый и пытаться ремонтировать?

Уважаемый Patron как то написал программку, выводящую символ в системный порт.
Вот она
@1000/012737
001002/000101
001004/17777566
001006/105737
001010/17777564
001012/100375
001014/000771
@1000G
Заработала она у меня с небольшим исправлением адреса, относительно оригинала.
Помогите плиз с программкой, которая бы просто выводила слово по адресу, без опроса регистра состояния, с темпом несколько выборок в секунду. Нужно будет для отладки адресного дешифратора и работы с шиной вообще. Хотя темп я могу "задавать" сам, не выставляя RPLY.
Сейчас на форуме
_Patron_
Member


Откуда: Москва
Всего сообщений: 146
Рейтинг пользователя: 0


Ссылка


Дата регистрации на форуме:
19 дек. 2012
  .ASECT

  . = 1000
1$:
  MOV  R1, @#177566
  SOB  R0, .-0.
  SOB  R0, .-0.
  BR  1$




@1000/10137
001002/17777566
001004/77001
001006/77001
001010/773
@R1/101
@1000G

MM
Advanced Member


Откуда: Павловский Посад Мск.обл.
Всего сообщений: 3418
Рейтинг пользователя: 0


Ссылка


Дата регистрации на форуме:
2 авг. 2013
_Patron_ написал:
[q]
@1000/10137
001002/17777566
001004/77001
001006/77001
001010/773
@R1/101
@1000G
[/q]
Троллим ?!
andyTh
Гость

Ссылка

_Patron_ написал:
[q]
.ASECT

. = 1000
1$:
MOV R1, @#177566
SOB R0, .-0.
SOB R0, .-0.
BR 1$
[/q]
Спасибо!!!
Сейчас на форуме
borisfox
Advanced Member


Откуда: Хабаровск
Всего сообщений: 946
Рейтинг пользователя: 0


Ссылка


Дата регистрации на форуме:
30 июля 2008
AndyTh написал:
[q]
Одна из плат КЦГД, если её установить ниже процессорной на экране кажет мигающий курсор и не реагирует на клавиатуру.
Вставленная выше процессорной, работает, но приветственный адрес кажет не @ 10000, а @ 10664.
Прошивка 181. Фича или таки канал АП2 с сигналом BIAK0 битый и пытаться ремонтировать?
[/q]
Однозначно что-то связанное с шиной неисправное, но скорее в плате процессора, чем в КЦГД...
Не обязательно АП2, кстати - часты отказы и резисторных сборок НР1-3 330/680 Ом. Они конструктивно очень хрупкие, и при ударах или деформациях платы ноги отваливаются от керамической подложки с собственно резисторами.

В пультовом режиме прерывания не используются и КЦГД должна работать в любом слоте.


AndyTh написал:
[q]
001004/17777566
[/q]
Ячейка 16-разрядная, и записано всё равно будет 177566, поэтому две 7 лишние...
andyTh
Гость

Ссылка

borisfox написал:
[q]
Однозначно что-то связанное с шиной неисправное, но скорее в плате процессора, чем в КЦГД...
Не обязательно АП2, кстати - часты отказы и резисторных сборок НР1-3 330/680 Ом. Они конструктивно очень хрупкие, и при ударах или деформациях платы ноги отваливаются от керамической подложки с собственно резисторами.

В пультовом режиме прерывания не используются и КЦГД должна работать в любом слоте.
[/q]
Процессорная плата одна и та же. И я её вобще не трогаю. Почему тогда с одной платой работает, а с другой нет? КЦГД прерывания может и не использовать, но вот запустится ли процессорная плата, если при стартапе скажем сигнал запроса прерывания будет активным? Просто по идее всё остальное в слотах запараллелено.

borisfox написал:
[q]
AndyTh написал:
[q]
001004/17777566
[/q]
Ячейка 16-разрядная, и записано всё равно будет 177566, поэтому две 7 лишние...
[/q]
Пишу 177566/101
на экране ничего.
пишу 17777566/101 на экране А.
и прогу ту пускал именно в таком виде, иначе не работало.
Сейчас на форуме
borisfox
Advanced Member


Откуда: Хабаровск
Всего сообщений: 946
Рейтинг пользователя: 0


Ссылка


Дата регистрации на форуме:
30 июля 2008
AndyTh написал:
[q]
но вот запустится ли процессорная плата, если при стартапе скажем сигнал запроса прерывания будет активным? Просто по идее всё остальное в слотах запараллелено.
[/q]
Не запустится. Но ведь и сигнал запроса запараллелен. В цепочке только сигналы подтверждения запросов прерывания и прямого доступа к памяти.
Если сигналы подтверждения посадить на землю, то ничего плохого не будет (при условии, что в корзине нет других адаптеров, которым эти сигналы для успешного запуска нужны в неактивном состоянии), т.к. у платы микроЭВМ выводы IAKO и DMGO это просто выходы с открытым коллектором. Процессору на их состояние в пультовом режиме в общем-то всё равно...
Если бы в КЦГД на землю был замкнут один из сигналов запроса прерывания, то это проявлялось бы в любом слоте, если, конечно, в корзине обрывов нет.


AndyTh написал:
[q]
Пишу 177566/101
на экране ничего.
пишу 17777566/101 на экране А.
[/q]
Адрес ячейки в пультовом режиме - 22 разрядный, поэтому набирать надо полностью.
А содержимое 16-разрядное, поэтому 17777566 никак не вписать.
Можно провести эксперимент:
- откроем ячейку, запишем данные, закроем:
1000/xxxxxx 177566 >ВК>
- откроем ещё раз:
1000/177566 (должно быть, при исправной ЭВМ)
- то же, но запишем 17777566:
1000/xxxxxx 17777566 >ВК>
- откроем опять - должно быть то же самое 177566.
andyTh
Гость

Ссылка

Всё, я понял о чём речь. Странно что у меня та первая программа с 16 бит адресом(в ячейке) не заработала.
А заработала с 22, хотя он просто обрезался. Возможно, правда я допустил ошибку при наборе.
КЦГД пару раз вытянул-вставил, прозвонил сборки на плате и... заглючил окончательно. Я было обрадовался, АП2 сдохла, проще искать.
Достал осциллограф, а оно взяло и заработало. Работает в любом слоте теперь. В общем как нибудь в другой раз потыкаю. Пусть торчит в корзине пока.

Плату контроллера вытравил, на выходных надеюсь попаять и буду осваивать сам микроконтроллер.
Сейчас на форуме
borisfox
Advanced Member


Откуда: Хабаровск
Всего сообщений: 946
Рейтинг пользователя: 0


Ссылка


Дата регистрации на форуме:
30 июля 2008
Где-то непропай, или межслойный переход рассыпался... Бывает. Ловить тяжело.
Межслойные переходы в районе краевого разъёма не пропаиваются, и в них, бывает, гниёт металлизация.
andyTh
Гость

Ссылка

Не прошло и месяца :)

На работе чуть попустило, сел за проект. И для ДВК никогда ранее ничего не делал, и под АРМ тож пишу впервые.
От STM32 впечатления странные, но то такое. Для упрощения своей жизни прицепился пока к адресу системного терминала.
Пока режим только чтение, RPLY отрабатывает 065 на КЦГД, за что ей спасибо :)
На частоте ядра 25Мгц (кварц просто такой впаян) спокойно отрабатывает шину.
Хочу по человечески переписать обмен с QBUS, и разобраться с UART.
Сделаю эдакий полный перехват системного порта.
Это всё разминка перед привинчиванием IDE устройства, но тут надеюсь всё получится.

ПыСы инверсия адресов и данных конечно доставляет...
Сейчас на форуме
andyTh
Гость

Ссылка

Чисто крик души...
Начал писать "правильную" декодировку Qbus.
Несколько дней не мог понять что происходит и искал программные глюки.
Всё оказалось проще. Принёс боле менее пристойный осциллограф и увидел, что внутренние подтяжки микроконтроллера не вытягивают АП2. Фронты суперзавалены.
То что я списывал на криворукость программирования, оказалось кривостью схемотехники. :)
Вот так лень поставить пару резисторных сборок заставляет паять пару десятков резисторов.
Сейчас на форуме
andyTh
Гость

Ссылка

День добрый, заблудился в 3х соснах.
Шина декодируется. Если "базовым" адресом выбираю адрес системного терминала, весь вывод на монитор чётко дублируется выводом из порта моей платы. Меняю адрес моей платы в программе и обращений к ней нет вообще. В программе поставил контрольную точку:

шаг 1 Проверяем одновременное равенство 0 SYNC и BS7 ( проверяем, что на шине выставлен адрес внешнего устройства)
если совпало, переходим
шаг 2 Считываем адрес.
если совпало, печатаем матерное слово.

Вот это самое слово и не печатается, хотя если подставить адрес 177566, то дальше срабатывают проверки на DIN/DOUT и прочее.

обращаться пытаюсь из терминального режима
@17777570 /
@BUS ERROR
Адреса пробовал разные.


ПыСы Умная мысля приходит опосля...
Завтра по SYNC=BBS7=0 cброшу в лог все адреса и погляжу куда идут обращения.
Сейчас на форуме
MM
Advanced Member


Откуда: Павловский Посад Мск.обл.
Всего сообщений: 3418
Рейтинг пользователя: 0


Ссылка


Дата регистрации на форуме:
2 авг. 2013
Позвольте поинтересоваться, а после прихода сигнала, например, DIN и наличия выборки необходимого адреса, выставляется ли сигнал RPLY ?
Диаграмма чтения на МПИ :

AD0-AD15, A16-A21, BS7 NNNAAAAAAAANNNNNNNNNNNNDDDDDDDDDDNNNNNNNNNNN
SYNC ***************1111111100000000000000000000000000000011111111111
DIN **************** 1111111111110000000000000000000001111111111111111
RPLY *************** 111111111111111111111111111000000001111111111111

1 символ в диаграмме - приблизительно 50 нс
N - неопределено
А - адрес выставлен
D - данные выставлены
0 - о вольт.
1 + 5 вольт.
DIN - выставляется процессором.
RPLY - выставляется портом
*
Ток входа 531АП2 ( при 0в. ) - 3.2 ма, ток +5в. - порядка 0.15 ма.
andyTh
Гость

Ссылка

Смотите, у меня по SYNC ловушка на адрес не срабатывает. Точнее на адрес 177566 работает. А на произвольный нет. Или я не умею это делать.
Перечитайте, я полностью сел параллельно адресу КЦГД и проверил работу дешифратора шины.
Сейчас на форуме
MM
Advanced Member


Откуда: Павловский Посад Мск.обл.
Всего сообщений: 3418
Рейтинг пользователя: 0


Ссылка


Дата регистрации на форуме:
2 авг. 2013
Схема регистра со сменным адресом 177760-177776, самостоятельное устройство на МПИ, подойдет к БК0010, БК11М, УКНЦ, ДВК :
andyTh
Гость

Ссылка

Ок, зайдём с другой стороны.
Что мне нужно набрать в пульте, чтобы в фазе адреса (SYNC упал в 0) на шине появилось к примеру 177570.
DIN/DOUT не важно, до них дело пока не доходит.
Просто чтобы сработала проверка адреса.
Напомню, вывод в системный терминал перехватывается нормально. RPLY генерит железячная 065.
вывод на экран чётко дублируется в отладочный порт.
А вот на
@17777570 /
выдаётся BUS ERROR т.к. RPLY не генерится. Но и адресная защёлка не срабатывает.
Если не хватает частоты программного опроса, почему работает с адресом 177566?
Сейчас на форуме
MM
Advanced Member


Откуда: Павловский Посад Мск.обл.
Всего сообщений: 3418
Рейтинг пользователя: 0


Ссылка


Дата регистрации на форуме:
2 авг. 2013
В пульте ДВК-2 ( БК11М ) можно набрать :
177570/ - открытие ячейки с адресом 177570 ( 8 ).
Для моделей с М-ЭВМ МС1201.03 и МС1201.04 надо набрать :
17777560 - т.е. добавить 6 линий Ах, т.е. 2 шт. "7" ( 8 ).
При этом на адресные линии выставится примерно на 100 нс адрес, потом сигнал SYNC опустится с +3.3 в. до уровня 0.5 в., и будет еще не менее 50 нс удерживаться адрес ( после прихода сигнала SYNC ). Для классической схемы опознания адреса ничего больше не производится.
( Однако, есть варианты с сигналом SSYNC и быстрыми процессорами - на 16 и даже больше мгц , но их сейчас не будем рассматривать ).
После поднятия сигнала SYNC с уровня 0.5 в. до уровня 3.3 в. необходимо сбросить внутренний триггер захвата адреса порта на МПИ.
После захвата адреса и пришествия сигнала DIN необходимо в течении 100 тактов процессора выставить сигнал RPLY - если этого не сделать, будет "BUS ERROR". Для процессора 1801ВМ3 при частоте 7.5 мгц это время - немного более 10 мкс. ( ВМ2-12 мгц - 7 мкс ).
*
ИМХО - делать полностью программное опознавание МПИ реально только при быстродествии более 30 лимонов рег-рег однокристалки ( т.е. 1816ВЕ51 никак не подойдет ) , иначе - путь программно - аппаратный ( как в КЖД ДВК ).
В программно - аппаратном захвате адреса захват адреса происходит аппаратно ( см. Э3 выше в моем сообщении ), а работа с сигналами DIN and DOUT - программно в ОЭВМ - в течении до 10 мкс на 1 запрос обмена. При этом на ОЭВМ поступают сигналы "наличие выборки адреса" ( выв.02 ТМ9 , +5в. - выборка есть ) и сигналы адреса в группе захваченных адресов - выв. 05. 07, 10, 12, 15 ТМ9 ( адрес - инверсный ) ). При этом сигналы ввода - вывода целесообразно в ОЭВМ заводить уже стробированными выборкой адреса - выв. 06 и 03 ЛА3 ( соответствеено "чтение" и "запись" , активный уровень - 0в. ). Вывод на МПИ сигнала RPLY целесообразно делать целиком из ОЭВМ . Если ОЭВМ медленнее 5 лимонов рег-рег, целесообразно сделать целиком аппаратный блок обмена данными - на быстром СОЗУ, например ( для богатеньких буратино - двухпортовом ).
MM
Advanced Member


Откуда: Павловский Посад Мск.обл.
Всего сообщений: 3418
Рейтинг пользователя: 0


Ссылка


Дата регистрации на форуме:
2 авг. 2013
Устройство векторного прерывания для МПИ ( БК11, УКНЦ ). ( Для ДВК следует КР1533ИР23 сменить на КР531АП6 ) :
andyTh
Гость

Ссылка

В общем нехрен по воскресеньям на работу ходить. И то, за чем пришёл (основное ) не вышло, и игрушка не получилась :(
Мысль о недостаточности чисто программного опроса мучила весь вечер, решил всё таки чуть переделать программу.
Но перед этим ещё раз проверить. И, блин, всё заработало. То, что не работало вчера.
В общем, обмен по шине работает.
По скорости, у меня ARM 32-bit CortexTM-M3 CPU;
Частота тактирования до 120МГц, 150 DMIPS/1,25 DMIPS/МГц (Dhrystone 2.1);
Частота тактирования портов CORE CLK / 2
Реально, пока не поставил программные защёлки на однократный проход шины (по перепаду SSYNC 1 в 0 выполнять проверку только один раз. До этого проверка крутилась в бесконечном цикле) получал в диагностическом терминале удвоенные-утроенные символы.
Типа " ДДООССТТУУППННОООЕЕ ООЗЗУУ"
Да, у меня стенд 1201.03 + КЦГД

Похоже надо теперь прикручивать HX сервер и копать далее.
Может коллега Patron модифицирует НХ загрузчик, что бы я его мог разместить у себя внутри контроллера и грузить систему со второго порта?
Или выкинуть КЦГД и работать с писишкой пока.

Ну и разобраться вот с этим:


А есть ли смысл производить в контроллере разбор протокола HX, когда можно просто считывать с Q-BUS команды и выполнять их.

Тогда проще взять за основу драйвер псевдо-диска HD

Контроллер должен принимать следующие команды от драйвера:

1. Установить номер привода для последующей операции.
2. Установить номер блока для последующей операции.
3. Установить счётчик слов для последующей операции.
4. Выполнить операцию "ЧТЕНИЕ".
5. Выполнить операцию "ЗАПИСЬ".
6. Выполнить операцию "СООБЩИТЬ РАЗМЕР НОСИТЕЛЯ" ( в блоках ).

По командам "ЧТЕНИЕ" и "ЗАПИСЬ" контроллер должен прочитать/записать заданное количество слов через регистр данных.
По команде "СООБЩИТЬ РАЗМЕР НОСИТЕЛЯ" контроллер должен поместить в регистр данных размер носителя в заданном приводе.

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


Если мы используем только 65535 блоков по 512 слов, не маловата ли ёмкость диска выйдет?
Сейчас на форуме
_Patron_
Member


Откуда: Москва
Всего сообщений: 146
Рейтинг пользователя: 0


Ссылка


Дата регистрации на форуме:
19 дек. 2012
AndyTh написал:
[q]
грузить систему со второго порта
[/q]
Но если сам загрузчик попадает в память через посылку команд модификации ячеек в пульт ДВК - сделать это можно только через основной порт или через эмулятор клавиатуры МС 7004, подключенный к КЦГД / КСМ.
andyTh
Гость

Ссылка

У меня "на борту" 512К флеша. Если я могу сделать доступной ячейку с адресом хххх, то так же могу и диапазон хххх-уууу в который положить тело загрузчика и выполнить его затем из адреса хххх.
Ну да ладно, это такое.
Прав ли я на счёт размера "диска" блочного устройства, 65536*512 = 32К?
Или на количество блоков можно выделить несколько 16бит слов?
На что лучше ориентироваться, прикручивая интерфейс?

Есть ли где описание встроенного в 1201.03 MSCP загрузчика?
Сейчас на форуме
_Patron_
Member


Откуда: Москва
Всего сообщений: 146
Рейтинг пользователя: 0


Ссылка


Дата регистрации на форуме:
19 дек. 2012
AndyTh написал:
[q]
положить тело загрузчика и выполнить его затем из адреса хххх
[/q]
А как процессор узнает, что ему надо передать управление на этот адрес..
[q]
65536*512 = 32К?
[/q]
Именно так - это ограничение на максимальный размер диска в RT-11.
andyTh
Гость

Ссылка

_Patron_ написал:
[q]
А как процессор узнает, что ему надо передать управление на этот адрес..
[/q]
Я с консоли наберу xxxxG.


_Patron_ написал:
[q]
Именно так - это ограничение на максимальный размер диска в RT-11.
[/q]
Вот тут у меня переворот мировоззрения :)
Нет, к своему стыду я пока особо не вникал, но вот помнятся мне диски на Э85 в 5 и 10 мег побитые на 2 куска и с RT11.
По крайней мере я так считал, это была машина гораздо более старшего коллеги. ПРОС он снёс, поставил RT11 и возился с каким то специфическим софтом. От машины всех гонял.
...и что нам делать с гигабайтной флешкой...
Сейчас на форуме
Anonymous
Advanced Member


Откуда: Москва(Россия)
Всего сообщений: 2537
Рейтинг пользователя: 0


Ссылка


Дата регистрации на форуме:
22 нояб. 2011
Не 32Kb, a 32Mb...

AndyTh написал:
[q]
и что нам делать с гигабайтной флешкой...
[/q]
Диски в RT11 имеют номер привода от 00 до 077 (в восьмеричной системе), т.о. доступно 2Гб для каждого устройства. Для многих устройств можно выборочно переназначать адрес начала каждой из 64 32Мбайтных партиций, получая доступ к гораздо большему объему. Можно переназначение сделать не через SET, а через .SPFUN, тогда из программ собственных будет доступ к пространству более 2Гб.
MM
Advanced Member


Откуда: Павловский Посад Мск.обл.
Всего сообщений: 3418
Рейтинг пользователя: 0


Ссылка


Дата регистрации на форуме:
2 авг. 2013
Вот мы и подошли к неприступной скале - софту для работы с регистрами винта.
*
Аппаратный загрузчик предлагаю разместить с адреса 173000....173776 - т.е. для загрузки с винта надо просто набрать 173000G
( В МС1201.03/04 - 17773000G ). Или предусмотреть переключатель адресов расположения текста загрузчика и его вида ( т.к. даже минимальное ПЗУ позволяет сделать несколько вариантов ).
На время разработки там следует поставить эмуль ПЗУ, а после проработки кода - натуральное ПЗУ ( 2 шт. 556РТ7 ).
МС1201.03 имеет режим пуска прямо на 173000 - переключателем на плате, сигнал WO ВМ3 - таким образом надо писать так, что бы произвести подготовку М-ЭВМ с нового старта ( посте вкл. питания ).
Так же не следует забывать пользователей М-ЭВМ, у которых нет терминала 177560 - БК и др. виды ЭВМ.
*
2 Гбайт - очень хорошо, можно даже наделать дров - типа D0.SYS , D1.SYS , D2.sys .....
*
Интересно , в Демос как дела с каталогом/максимальным объемом винта и т.п. фундаментальными ограниченими ?
andyTh
Гость

Ссылка

Anonymous написал:
[q]
Не 32Kb, a 32Mb...
[/q]
А разве блок не 512 байт? Хотя что мешает ему быть 65535 слов. Тогда
65535 блоков * 65535 слов * 2 байта = 8 гиг?
Сейчас на форуме
andyTh
Гость

Ссылка

MM написал:
[q]
Вот мы и подошли к неприступной скале - софту для работы с регистрами винта.
[/q]
Не нужно вам морочиться с регистрами винта. Просто дайте мне номер блока и заберрите данные из буфера или регистра. Остальное я сделаю.
Сейчас на форуме
_Patron_
Member


Откуда: Москва
Всего сообщений: 146
Рейтинг пользователя: 0


Ссылка


Дата регистрации на форуме:
19 дек. 2012
AndyTh написал:
[q]
А разве блок не 512 байт?
[/q]
65536*512 = 32M

А где будет работать сервер HX-протокола..

На борту?

Там неслабые количества кода.
andyTh
Гость

Ссылка

_Patron_ написал:
[q]
65536*512 = 32M
[/q]
Мда... красиво я округлил 3 порядка...


_Patron_ написал:
[q]
А где будет работать сервер HX-протокола..

На борту?

Там неслабые количества кода.
[/q]
В общем производительности бы хватило, но этого и не нужно. Мы же с вами обсуждали, нет необходимости парсить НХ протокол там, где достаточно гонять байты.
Просто у меня стенд- почти полная ДВК. Плата вычислителя, КЦГД, клавиатура. Есть и МХ контроллер, но всё дискет не куплю. Для дальнейшей отладки надо уже работать с дисками, грузить RT11, а для этого надо вытаскивать КЦГД. А так бы я загрузчик НХ разместил у себя в памяти.
Но похоже и без этого можно обойтись. Загрузчик блочного устройства есть в "биосе" 1201.03. Найти бы от него описание. Что и по каким адресам у него прописано. В смысле регистр команд, состояния и данных.


MM написал:
[q]
Или предусмотреть переключатель адресов расположения текста загрузчика и его вида ( т.к. даже минимальное ПЗУ позволяет сделать несколько вариантов ).
На время разработки там следует поставить эмуль ПЗУ, а после проработки кода - натуральное ПЗУ ( 2 шт. 556РТ7 ).
[/q]
это можно сделать ещё проще, например на ту же флешку кроме файлов - образов дисков можно положить текстовый файл с конфигурацией самой платы. Можно использовать последовательный порт порт на самой плате контроллера в режиме конфигурации, можно писать константы из пультового режима самой ДВК. Вариантов куча.
Сейчас на форуме
Anonymous
Advanced Member


Откуда: Москва(Россия)
Всего сообщений: 2537
Рейтинг пользователя: 0


Ссылка


Дата регистрации на форуме:
22 нояб. 2011
AndyTh написал:
[q]
а для этого надо вытаскивать КЦГД.
[/q]
Не надо ничего вытаскивать, контакт 9 разъема Х6 позволяет перенстроить адрес КЦГД на 017776560, порт наплатный 1201.03 перенастройте на 017776570, а свой эмулируемый на stm тогда будет на адресах консоли 017777560.
_Patron_
Member


Откуда: Москва
Всего сообщений: 146
Рейтинг пользователя: 0


Ссылка


Дата регистрации на форуме:
19 дек. 2012
AndyTh написал:
[q]
дайте мне номер блока и заберрите данные из буфера или регистра. Остальное я сделаю.
[/q]
Если сделать ещё один шаг и сэмулировать DMA, напрямую отдавая данные в область ОЗУ - можно без всяких переделок использовать драйвер псевдо-диска HD ( по-умолчанию драйвер HD взаимодействует с псевдо-контроллером через адреса 177720 и 177722 ).

А если эмулировать DMA лень - надо просто добавить в код драйвера ( после подачи в контроллер команды чтения блока ) цикл пересылки блока данных между контроллером и памятью.
andyTh
Гость

Ссылка

_Patron_ написал:
[q]
Если сделать ещё один шаг и сэмулировать DMA, напрямую отдавая данные в область ОЗУ
[/q]
Я ведь изначально так и предлагал. Отображать на память блок сразу. Мне это проще, в протокол обмена по QBus не нужно вписывать счётчик слов и работу с неполными блоками.
Вопрос в другом, изначально нужно как то загрузиться с диска. Т.е. либо писать свой загрузчик, либо использовать готовый.
Готовый есть только начиная с 1201.03 и только для ДВК, если не ошибаюсь.
Сейчас на форуме
_Patron_
Member


Откуда: Москва
Всего сообщений: 146
Рейтинг пользователя: 0


Ссылка


Дата регистрации на форуме:
19 дек. 2012
AndyTh написал:
[q]
Я ведь изначально так и предлагал. Отображать на память блок сразу.
[/q]
ДМА - это копирование данных изнутри контроллера в находящиеся на шине снаружи контроллера ячейки ОЗУ без участия процессора. При этом процессор блокируется, а на шине выполняется специальный цикл передачи данных изнутри контроллера в ОЗУ ( или наоборот ).
[q]
Вопрос в другом, изначально нужно как то загрузиться с диска.
[/q]
Здесь всё просто - загрузчик записан в нулевом блоке системного диска, а в области регистров контроллера нужно иметь небольшой код из нескольких команд, который читает 0-й блок загружаемого привода по адресу 0 и передаёт управление на адрес 0. Сам же этот начальный загрузчик надо запускать вручную из пульта по команде xxxxxx G, где хххххх - адрес кода начального загрузчика в области регистров контроллера.

Если контроллер использует ДМА - можно сделать как в MY - иметь специальную команду "прочитать загрузчик", по которой контроллер сам помещает данные из нулевого блока диска по адресу 0. Тогда надо сначала записать в регистр данных номер загружаемого привода, потом записать в регистр команд код команды "прочитать загрузчик", а потом просто нажать "G" и управление будет передано на адрес 0, где уже находится прочитанный с привода загрузчик.
andyTh
Гость

Ссылка

_Patron_ написал:
[q]
ДМА - это копирование данных изнутри контроллера в находящиеся на шине снаружи контроллера ячейки ОЗУ без участия процессора. При этом процессор блокируется, а на шине выполняется специальный цикл передачи данных изнутри контроллера в ОЗУ ( или наоборот ).
[/q]
А если ячейки памяти будут находиться внутри контроллера, то это уже не ДМА? ДМА это обмен данными в памяти без участия процессора. При этом блокировка процессора не обязательна. Он может работать с другими страницами или участками памяти. Ну если контроллер самой памяти это позволяет. Я предлагаю область памяти под буфер диска разместить внутри контроллера. Какая разница где будет расположена память, с которой работать драйверу.
Но можно остановится и на варианте не с буфером, а регистром.

Т.е. программа минимум:

Контроллер должен принимать следующие команды от драйвера:

1. Установить номер привода для последующей операции.
2. Установить номер блока для последующей операции.
3. Установить счётчик слов для последующей операции.
4. Выполнить операцию "ЧТЕНИЕ".
5. Выполнить операцию "ЗАПИСЬ".
6. Выполнить операцию "СООБЩИТЬ РАЗМЕР НОСИТЕЛЯ" ( в блоках ).
Сейчас на форуме
_Patron_
Member


Откуда: Москва
Всего сообщений: 146
Рейтинг пользователя: 0


Ссылка


Дата регистрации на форуме:
19 дек. 2012
AndyTh написал:
[q]
А если ячейки памяти будут находиться внутри контроллера, то это уже не ДМА?
[/q]
Если контроллер эмулирует всю доступную процессору память - проблем нет. Но если на шине есть внешняя ( по отношению к контроллеру ) память - передавать туда данные контроллер должен по ДМА.
_Patron_
Member


Откуда: Москва
Всего сообщений: 146
Рейтинг пользователя: 0


Ссылка


Дата регистрации на форуме:
19 дек. 2012
AndyTh написал:
[q]
Какая разница где будет расположена память, с которой работать драйверу.
[/q]
Просто, если контроллер работает по ДМА и блокирует процессор - уже при выполнении процессором следующей команды драйвера после активации контроллера - прочитанные данные уже находятся в ОЗУ по тому адресу, который операционка сообщила драйверу, а драйвер сообщил контроллеру. Если же контроллер только "выставляет" данные в своём буфере, но сам не переправляет их в буфер пользователя в ОЗУ по тому адресу, который операционка сообщила драйверу - копировать туда данные из буфера контроллера должен сам драйвер ( после подачи в контроллер команды чтения ).

В текущем варианте драйвер HD сам ничего не копирует - только сообщает в контроллер адрес буфера пользователя в ОЗУ.
andyTh
Гость

Ссылка

Воооот! Достаточно драйверу разместить буфер в самом контроллере, и процессору ничего делать не нужно. Данные "волшебным" образом будут меняться сами. Это очень хорошо иллюстрируется двумя видеоконтроллерами.
Это 580ВГ75 и ЕМНИП 1809ВГ6. Первая перебиралки адресов не имеет и без аппаратного ДМА контроллера не работает. Не, сделать то можно, но...
Второй чип счётчик адресов имеет и прекрасно работает на системах без ДМА контроллера. Более того, видел в сети проект, где процессор и видеоконтроллер питались от одного тактового генератора, но инвертированными относительно друг друга клоками.
Остальные сигналы управления тоже были подогнаны по времени. В результате проц и видеоконтроллер обращались к памяти по очереди не замечая друг друга.

Но это пока на том этапе, на котором я остановился, не так важно.
Мне бы "стандартную" раскладку адресов командных и управляющих регистров для начала найти.
В общем буду потихоньку курить паспорт от RQDX, до просветления :) мож толк и выйдет.
Сейчас на форуме
_Patron_
Member


Откуда: Москва
Всего сообщений: 146
Рейтинг пользователя: 0


Ссылка


Дата регистрации на форуме:
19 дек. 2012
AndyTh написал:
[q]
Достаточно драйверу разместить буфер в самом контроллере, и процессору ничего делать не нужно. Данные "волшебным" образом будут меняться сами.
[/q]
Драйвер к буферу пользователя не имеет никакого отношения. Пользователь, желающий прочитать произвольное количество слов с диска ( вплоть до 32К слов за одну операцию чтения ) передаёт операционке номер начального блока, адрес СВОЕГО буфера и счётчик слов, операционка передаёт их в драйвер, а драйвер выполняет столько запросов чтения, сколько нужно для получения от контроллера всех запрошенных пользователем слов и аккуратно укладывает результаты всех этих запросов в буфер пользователя.

Некоторые контроллеры считывают за один раз не больше 64 слов, некоторые - не больше 256 слов, псевдо-контроллер HD передаёт любое количество слов, но благодаря наличию драйверов - пользователь может по единому алгоритму получить в СВОЙ буфер любое количество слов от любого контроллера.

Если контроллер поддерживает ДМА - он сам копирует данные из своего буфера в буфер пользователя, а если нет - это делает драйвер.
andyTh
Гость

Ссылка

_Patron_ написал:
[q]
Если контроллер поддерживает ДМА - он сам копирует данные из своего буфера в буфер пользователя, а если нет - это делает драйвер.
[/q]
Это понятно. Просто я сейчас физически не смогу этого сделать. Аппаратно у меня ДМА не разведен и честное ДМА я не сделаю в пределах этой макетки. Но сделать прозрачным в доступе процессору сегмент адресов на своей плате я могу. Для процессора это будет просто кусок памяти не на основной плате, но доступный точно так же как и основное ОЗУ. Эдакий аналог двухпортовой памяти.
Сейчас на форуме
_Patron_
Member


Откуда: Москва
Всего сообщений: 146
Рейтинг пользователя: 0


Ссылка


Дата регистрации на форуме:
19 дек. 2012
AndyTh написал:
[q]
сделать прозрачным в доступе процессору сегмент адресов на своей плате я могу
[/q]
Поскольку драйвер HD готов запросить и получить за один раз до 32К слов данных, то единственный адекватный способ передать их все драйверу за одну операцию чтения диска - выдавать их по одному через регистр данных, сменяя на следующее после каждого шинного цикла чтения при операции чтения и цикла записи при операции записи.

Если не различать тип цикла при доступе к регистру данных, то на некоторых процессорах могут появиться проблемы с командой CLR, которая выдаёт сначала цикл чтения, а потом цикл записи.
andyTh
Гость

Ссылка

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

Базовый адрес ххх. Положить суда или часы в BCD или доп. порт. или служебную инфу
ххх+2 регистр номера привода (запись/чтение)
ххх+4 регистр ёмкости привода в блоках (чтение)
ххх+6 регистр номера блока (запись)
ххх+8 регистр счётчика слов (запись/чтение)
ххх+10 регистр команд (запись/чтение)
ххх+12 регистр данных (запись/чтение)
Опять же таки, где то же есть эта раскладка по адресам для "контроллера общего применения" Под что то же писан загрузчик встроенный в МС1201.03.
Сейчас на форуме
_Patron_
Member


Откуда: Москва
Всего сообщений: 146
Рейтинг пользователя: 0


Ссылка


Дата регистрации на форуме:
19 дек. 2012
AndyTh написал:
[q]
Ну, считать за одно обращение к диску больше чем кластер, я по идее не смогу.
[/q]
Если чтение/запись кластера занимает больше времени, чем тайм-аут шины, то надо добавить в контроллер регистр статуса, рапортующий о готовности очередного кластера.
andyTh
Гость

Ссылка

Поскольку и в регистре номера накопителя и в регистре команд будет занято по одному байту, второй байт можно выделить под статус. Хотя и целое слово довыделить не проблема.
Сейчас на форуме
borisfox
Advanced Member


Откуда: Хабаровск
Всего сообщений: 946
Рейтинг пользователя: 0


Ссылка


Дата регистрации на форуме:
30 июля 2008
Сделайте совместимым по регистрам с КЖД, по крайней мере с загрузчиком и драйвером проблем не будет...
andyTh
Гость

Ссылка

Так ведь потеряется магия блочного устройства...
Рискнуть и покопать 134 прошивку, попробовать вытянуть параметры регистров и команд оттуда?
Сейчас на форуме
borisfox
Advanced Member


Откуда: Хабаровск
Всего сообщений: 946
Рейтинг пользователя: 0


Ссылка


Дата регистрации на форуме:
30 июля 2008
А параметры регистров чего? КЖД ? Они же все в описании расписаны.

В -134 замечена возможность загрузки со следующих устройств:
MT\t- НМЛ СМ5300
CT\t- НМЛ кассетный
DK\t- ?
DP\t- RP02/03 Disk ?
DM\t- RK06/07 Disk ?
MM\t- MM (TJU16) MAGTAPE ?
DB\t- ?
DS\t- RJS03/04 Disk ?
DX\t- ГМД-7012
DW\t- КЖД
MX\t- КНГМД
MY\t- КМД
DU\t- MSCP Disk
Все я плотно не колупал, поэтому "?" отмечены неизвестные или непроверенные (в самом деле то или просто название совпадает). Можно подстроиться и под какой-нибудь другой из перечисленных, но самый простой из них, думаю, всё-таки КЖД... Самый правильный - MSCP, но он сложный.
andyTh
Гость

Ссылка

Хотелось бы увидеть раскладку регистров от DB. Это же и есть встроенный MSCP?
В чём сложность MSCP по сравнению с тем же КЖД? MSCP отдаёт номер блока напрямую, в случае ЖД его надо будет вычислить по головкам/цилиндрам. Реализация контроллера? Возможно, но пока трудностей не видится ни с тем ни с другим.
Сейчас на форуме
_Patron_
Member


Откуда: Москва
Всего сообщений: 146
Рейтинг пользователя: 0


Ссылка


Дата регистрации на форуме:
19 дек. 2012
borisfox написал:
[q]
DK - ?
[/q]
Так дековцы называли RK03/05


AndyTh написал:
[q]
Поскольку и в регистре номера накопителя и в регистре команд будет занято по одному байту, второй байт можно выделить под статус. Хотя и целое слово довыделить не проблема.
[/q]
Здесь есть тонкий момент, заключающийся в том, что контроллер должен обслуживать обращения к своему регистру статуса вне зависимости от фазы выполнения управляющей программы контроллера. Т.е. если (например) при чтении кластера контроллер перестаёт обслуживать шину - наличие эмулируемого регистра статуса ничем не поможет, потому что при обращении к нему произойдёт такой же тайм-аут, как и при обращении к эмулируемому регистру данных.

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


Старший бит регистра статуса или регистра команд нужно выделить под признак ошибки. Если драйвер передаёт номер блока, которого нет в подключенном образе, или номер привода, к которому не подключен образ - контроллер может сразу сообщить об ошибке или сделать это после подачи кода команды.
borisfox
Advanced Member


Откуда: Хабаровск
Всего сообщений: 946
Рейтинг пользователя: 0


Ссылка


Дата регистрации на форуме:
30 июля 2008
AndyTh написал:
[q]
Хотелось бы увидеть раскладку регистров от DB. Это же и есть встроенный MSCP?
[/q]
Нет, MSCP это DU, а что они подразумевали под DB, я не знаю...


AndyTh написал:
[q]
В чём сложность MSCP по сравнению с тем же КЖД? MSCP отдаёт номер блока напрямую, в случае ЖД его надо будет вычислить по головкам/цилиндрам. Реализация контроллера? Возможно, но пока трудностей не видится ни с тем ни с другим.
[/q]
Протокол достаточно навороченный, с очередями команд в памяти. Много разных команд с развесистым списком параметров. Активно завязан на ПДП для передачи как дескрипторов команд, так и данных. В Вашем случае работа с ПДП не поддерживается, так что отпадает как минимум по этой причине...
Начать можно, например, со спецификаций отсюда: http://www.textfiles.com/bitsavers/pdf/dec/mscp/.
Также можно взять описание любого MSCP-совместимого контроллера посовременнее, например, DEC RQDX3, RQDX4, или дисковые контроллеры Dilog/Emulex... посмотреть, как спецификацию реализовывали в реальных железках...
andyTh
Гость

Ссылка

borisfox написал:
[q]
Протокол достаточно навороченный, с очередями команд в памяти. Много разных команд с развесистым списком параметров. Активно завязан на ПДП для передачи как дескрипторов команд, так и данных. В Вашем случае работа с ПДП не поддерживается, так что отпадает как минимум по этой причине...
[/q]
Вот же ... Мда. Доки почитаю, спасибо огромное! Меня на неделю отправляют в ссылку, так что надеюсь почитать время будет.
Т.е или свой драйвер MSCP, или КЖД...
Будем подумать.
Сейчас на форуме
andyTh
Гость

Ссылка

_Patron_ написал:
[q]
В КЖД на такой случай выделен специальный аппаратный регистр. Перед тем, как процессор КЖД перестаёт обслуживать шину МПИ и отвечать на обращения по МПИ к эмулируемым регистрам - он снимает в аппаратном регистре бит готовности. При включении питания бит готовности в аппаратном регистре автоматически сбрасывается и устанавливается процессором после завершения программы начального тестирования.
[/q]
Судя по всему процу на КЖД катастрофически не хватало скорости. И обработка шины в реалтайме была буквально на грани.
У меня железного доп регистра нет. Так что особой разницы регистр или бит функционально тоже нет.
Сейчас на форуме
borisfox
Advanced Member


Откуда: Хабаровск
Всего сообщений: 946
Рейтинг пользователя: 0


Ссылка


Дата регистрации на форуме:
30 июля 2008
В КЖД процессор, по сути, выполняет роль конечного автомата с микропрограммным управлением. Содержимое двух ПЗУ реализует диаграмму состояний, третьего - выдачу управляющих сигналов.
Доступ к регистрам был возможен только во вполне определённых состояниях. Разряд 15 ("ЗАНЯТ") регистра РСНУ (состояния/начальной установки) как раз и показывал, когда контроллер свободен (регистры доступны), а когда нет...

Сейчас так извращаться, наверное, излишне. Если реализовывать КЖД-совместимый контроллер, то можно защёлку и дешифрацию адреса регистров выполнять аппаратно, и при совпадении генерировать прерывание на микроконтроллер, по которому он будет уходить на подпрограмму обслуживания доступа к ним.
Anonymous
Advanced Member


Откуда: Москва(Россия)
Всего сообщений: 2537
Рейтинг пользователя: 0


Ссылка


Дата регистрации на форуме:
22 нояб. 2011
borisfox написал:
[q]
Нет, MSCP это DU, а что они подразумевали под DB, я не знаю...
[/q]
DB это RP04/RP05/RP06
У меня из 134й все ненужное выкинуто, оставил только загрузчики с ide, scsi, dw, my и spi. Если интересно, могу выложить вечером.
andyTh
Гость

Ссылка

У меня работа с шиной полностью программная. Скорости более чем хватает.
Да и полного аналога КЖД не выйдет. На готовой платке ног оказалось маловато и на прерывания не хватило. Можно пожертвовать "железным" кварцем и перейти на внутренний генератор. Тогда высвободятся ещё 2 ноги.
Сейчас на форуме
borisfox
Advanced Member


Откуда: Хабаровск
Всего сообщений: 946
Рейтинг пользователя: 0


Ссылка


Дата регистрации на форуме:
30 июля 2008
Anonymous написал:
[q]
Если интересно, могу выложить вечером.
[/q]
Теоретически интересно, а практически заливать пока всё равно нечем, я программатор так ещё и не купил...


AndyTh написал:
[q]
У меня работа с шиной полностью программная. Скорости более чем хватает.
[/q]
И захват адреса программно? А не расточительно ли это - ловить каждый цикл обмена шины, а не только свои?... Ведь контроллеру ещё и с диском обмениваться когда-то надо...
andyTh
Гость

Ссылка

Ядро контроллера 120МГц. Порты тактируются ядро/2. всё 16бит слово читается за 1 раз. Может и расточительно, но хватает же. У нас задача то выставить сигналы управления да переложить байты из одного порта во второй.
Сейчас на форуме
Anonymous
Advanced Member


Откуда: Москва(Россия)
Всего сообщений: 2537
Рейтинг пользователя: 0


Ссылка


Дата регистрации на форуме:
22 нояб. 2011
borisfox написал:
[q]
Теоретически интересно, а практически заливать пока всё равно нечем, я программатор так ещё и не купил...
[/q]
http://qbus.narod.ru/134patched.rr1 - образ пзу,
http://qbus.narod.ru/134patched.true - инвертированный по данным и адресам (для ленивых),
http://qbus.narod.ru/134patch.mac - исходник загрузчиков оставленных и таблицы для их выгрузки.
http://qbus.narod.ru/du.lst - дамп загрузчика с MSCP из тела 134й прошивки.
andyTh
Гость

Ссылка

На днях столкнулся с маленькой проблемкой. Посеял картридер, умеющий компактфлеш. И как всегда, срочно понадобилось почитать/пописать флешку.
Честно говоря мне стоило заметных телодвижений найти такой картридер по знакомым. Тогда как читалка SD карточек разве что в зубочистку не встроена...
Вот мысль крамольная посетила, нужен ли на плате именно IDE интерфейс? Или в принципе непринципиально, если контроллер будет работать с SDшки.
Хочется услышать мысли со стороны.
Сейчас на форуме
Anonymous
Advanced Member


Откуда: Москва(Россия)
Всего сообщений: 2537
Рейтинг пользователя: 0


Ссылка


Дата регистрации на форуме:
22 нояб. 2011
Для системы ваш контроллер все равно будет блочным устройством с произвольным доступом, интерфейс и тип накопителя, и уровень, на котором микроконтроллер будет взаимодействовать с накопителем, никакого значения для ДВК не играет. Для ДВК главное сказать контроллеру номер блока и количество слов, и эти слова переслать, куда и как - задача микроконтроллера, а не ОС ДВК. Делайте хоть на РФ2, с программным поджигом ламп стирания. :)
<<Назад  Вперед>> Страницы: 1 2 3 4 5 ... .. 12 13 14 15 16 17
Печать
Полигон-2 »   Другие архитектуры »   Использование НМД2 в ДВК
RSS

1 посетитель просмотрел эту тему за последние 15 минут
В том числе: 1 гость, 0 скрытых пользователей

Последние RSS
[Москва] LIQUID-Акция. Сливаются разъемы CF
МС7004 и 7004А на AT и XT
Пайка термотрубок
Проммать s478 PEAK 715VL2-HT ( Full-Size SBC)
Подскажите по 386 материке по джамперам.

Самые активные 5 тем RSS