Объявление форума |
Если пользуетесь личными сообщениями и получили по электронной почте оповещение о новом письме, не отвечайте, пожалуйста, почтой. Зайдите на форум и ответьте отправителю через ЛС. |
Полигон-2 » Другие архитектуры » Использование НМД2 в ДВК |
<<Назад Вперед>> | Страницы: 1 2 3 4 5 ... .. 12 13 14 15 16 17 | Печать |
andyTh |
Сообщение отправлено: 17 апреля 2014 8:09 Сообщение отредактировано: 17 апреля 2014 8:11
День добрый, В связи с отсутствием родного КЖД посещают странные мысли. Периодически проскакивают платы от Э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 |
Профиль | Сообщить модератору
NEW! Сообщение отправлено: 17 апреля 2014 11:18 Сообщение отредактировано: 17 апреля 2014 11:19
там выложенны схемы и исходники дров, этот человек отвечает на email, и сейчас он уже пару лет делает эмулятор st506/st412 винта, до этого успешно сделал эмулятор RL02 rqdx контроллеры доступны на ebay |
andyTh |
NEW! Сообщение отправлено: 17 апреля 2014 11:57
День добрый, Это я от горя Оставались у нас в городе два известных мне места, где были ДВК и обещали поискать их. Вчера позвонил один товарищ и сказал, выбросили всё... Мне по фидошной памяти чего то казалось, что переходник там почти таки пассивный. Если это не так, затея не стоит смысла, т.к. эмулировать родные ПЗУ от НМД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 |
Профиль | Сообщить модератору
NEW! Сообщение отправлено: 17 апреля 2014 13:46 Сообщение отредактировано: 17 апреля 2014 13:53
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 |
Профиль | Сообщить модератору
NEW! Сообщение отправлено: 18 апреля 2014 0:58 Сообщение отредактировано: 18 апреля 2014 1:01
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 |
Профиль | Сообщить модератору
NEW! Сообщение отправлено: 18 апреля 2014 13:14 Сообщение отредактировано: 18 апреля 2014 13:16
bigral написал: НМД не использует ДМА - слова при чтении и записи передаются драйвером между памятью и регистром данных контроллера по одному, как в DX или MX. 1 dma - важен как часть тех "понтов" из которых строится business computer pdp-11 Прерывания используются только при завершении чтения и записи. Если очень хочется - можно посадить драйвер на прерывание таймера и проверять завершение операции 50 раз в секунду, но проще работать как в драйвере MX или HX - вообще без прерываний. |
andyTh |
NEW! Сообщение отправлено: 18 апреля 2014 15:04
Patron, меня мучал один вопрос, а тут как раз вы и заглянули. Вами написана замечательнейшая вещь, НХ драйвер и сервер. Согласитесь ли вы откорректировать этот драйвер таким образом, что бы он работал не с 065 а неким набором адресов. По этим адресам я повешу достаточно быстрый микроконтроллер с интерфейсом к IDE(CF) и FAT. Отрабатывать Q-BUS чисто программно на современных дешёвых мегагерцах. Идея не сильно изящная технически, но реально реализуемая. ПыСы почему так? Есть доступные альтернативы, коммерческая разработка на этом же форуме. Бери и покупай. Есть контроллер от УКНЦ на другом форуме. Допилить драйвер и переразвести плату. Есть контроллер Прянишникова. С схемой, драйверами, печаткой. Бери и делай. Есть контроллер Сhdickman. Тож бери да делай. Даже CPLDишку купить ещё можно. Но чем то каждый из них неудобен Почему НХ? насколько я понимаю, он не привязан к аппаратной реализации контроллера вообще. Т.е. нет необходимости писать НТФС под ДВК Идея с ВМ2 в контроллере правильная, но кто для него прошивку писать то будет. А так возьмём две готовые вещи и попробуем смотать их синей изолентой друг с другом. |
Сейчас на форуме |
palsw
Advanced Member
Откуда: Измаил_Украина Всего сообщений: 317 Рейтинг пользователя: 0 Ссылка Дата регистрации на форуме: 28 фев. 2015 |
AndyTh мне нравиться больше этот вариант.Плис и фпга уже достали последнее время.То их уже купить негде ,то возникает проблема ттл 5.0 - 3.3 совместимость и целый огород костылей.Тут адапптер на рассыпухе как я понял и вполне реально заказать маленькую партию и заняться запуском и поисков багов . Есть контроллер Прянишникова. С схемой, драйверами, печаткой. Бери и делай. |
andyTh |
NEW! Сообщение отправлено: 18 апреля 2014 15:42
Самое интересное, мы с ним были знакомы. Но много лет как контактов не было. Попытался найти по знакомым знакомых, бестолку. А пару вопросов не грех было и задать. Большой у него контроллер. Много микросхем и по большому счёту, без допила софта под новое железо, ничем не лучше контроллера на 2х регистрах и дешифраторе адреса. Глянь на карту адресов http://www.chdickman.com/qbus_ide/ и сравни с картой регистров АТА. ММ прав, софт кто писать будет? Мало начать делать хорошую вещь, надо её доделать до конца. ММ прав, я к примеру серьёзный софт под 1801ВМхх в обозримом будущем не потяну. Кому из спецов это будет нужно и интересно? А так возьмём одну почти подходящую разработку и попытаемся склеить с другой почти подходящей. Программный драйвер у нас есть. В железе надо организовать интерфейс аналогичный 065, что не так и сложно. Дальше посмотрим. у Vslav эмулятор отрабатывает циклы ВМ1, думаю пройдёт и здесь подобное решение. |
Сейчас на форуме |
_Patron_
Member
Откуда: Москва Всего сообщений: 146 Рейтинг пользователя: 0 Ссылка Дата регистрации на форуме: 19 дек. 2012 |
AndyTh написал: А есть ли смысл производить в контроллере разбор протокола HX, когда можно просто считывать с Q-BUS команды и выполнять их. откорректировать драйвер HX таким образом, что бы он работал не с 065 а неким набором адресов Тогда проще взять за основу драйвер псевдо-диска 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 |
NEW! Сообщение отправлено: 18 апреля 2014 16:49 Сообщение отредактировано: 18 апреля 2014 16:52
_Patron_ написал: Насколько я понимаю, это будет фактическим аналогом КНГМД с условно неограниченным размером в блоках? AndyTh написал:А есть ли смысл производить в контроллере разбор протокола HX, когда можно просто считывать с Q-BUS команды и выполнять их. откорректировать драйвер HX таким образом, что бы он работал не с 065 а неким набором адресов И вообще никак и ни с чем не совместимый? Файлики проводником на карточку сбросить будет нельзя |
Сейчас на форуме |
_Patron_
Member
Откуда: Москва Всего сообщений: 146 Рейтинг пользователя: 0 Ссылка Дата регистрации на форуме: 19 дек. 2012 |
Блоки всегда по 256 слов ( 512 байт ), но RT-11 позволяет читать/писать любое количество слов ( хоть меньше размера блока, хоть больше ), начиная с границы блока. Драйвер КНГМД больше похож на HX - там на диск пишутся не блоки данных, а блоки "протокола MX", которые надо зашифровать/расшифровать в драйвере. |
andyTh |
NEW! Сообщение отправлено: 18 апреля 2014 16:57
palsw написал: НХ просто протокол, по чём он бегает вторично. И не столько интересовал меня сам протокол, как начальный загрузчик и сам драйвер. Кажись зарождается новый проект и новая железка ИДЕ винчестер нормально вписывается. вопрос в том, как вписать в ДВК современные файловые системы. |
Сейчас на форуме |
andyTh |
NEW! Сообщение отправлено: 18 апреля 2014 17:01 Сообщение отредактировано: 18 апреля 2014 17:02
_Patron_ написал: Я неточно выразился, по сути это будет "одна дорожка", состоящая из блоков размером 512. Но их количество фактически будет ограничено только разрядностью чсётчика блоков. Так? Блоки всегда по 256 слов ( 512 байт ), но RT-11 позволяет читать/писать любое количество слов ( хоть меньше размера блока, хоть больше ), начиная с границы блока. |
Сейчас на форуме |
_Patron_
Member
Откуда: Москва Всего сообщений: 146 Рейтинг пользователя: 0 Ссылка Дата регистрации на форуме: 19 дек. 2012 |
Профиль | Сообщить модератору
NEW! Сообщение отправлено: 18 апреля 2014 17:06 Сообщение отредактировано: 18 апреля 2014 17:14
Именно так. В HX тоже так. Никаких "дорожек" и "секторов" в HX нет. Дорожки и сектора выдумывают драйверы по ходу дела. Операционка ни про какие дорожки и сектора даже не подозревает и сообщает драйверу только адрес буфера, номер привода, номер блока и количество слов. |
andyTh |
NEW! Сообщение отправлено: 18 апреля 2014 20:15
Беру таймаут. Надо бы перебрать доступные в округе МК, сделать платку на Q-BUS и мигнуть светодиодом. Вот смотрю я на кусок схемы КЦГД, как на образец входной части. Достаточно ли дешифровать только 16 линий адреса? Как с доступностью АП2? Я то нашёл энное количество, иль пожертвовать некоторой функциональностью и поставить обычные 8бит регистры? |
Сейчас на форуме |
Anonymous
Advanced Member
Откуда: Москва(Россия) Всего сообщений: 2537 Рейтинг пользователя: 0 Ссылка Дата регистрации на форуме: 22 нояб. 2011 |
AndyTh написал: Для организации регистров в странице в/в используется сигнал BS/К_ВУ_Н, когда он активен(в логическом нуле), адрес регистра выставляется на ад1..ад12, которые и следует дешифрировать. Достаточно ли дешифровать только 16 линий адреса? AndyTh написал: Еще годные драйвера QBUS - 559ИП3 (похожи на АП2: 4 входа данных, 4 выхода данных, 4 магистральных входа-выхода) и 559ИП15 (8 разрядов с ОК на одной стороне и тристейт на другой, двунаправленные). Как с доступностью АП2? Я то нашёл энное количество, иль пожертвовать некоторой функциональностью и поставить обычные 8бит регистры? |
andyTh |
NEW! Сообщение отправлено: 19 апреля 2014 18:56
Anonymous написал: Где можно почитать об этом способе адресации? Гугл выдаёт только диаграммы только простого обмена Для организации регистров в странице в/в используется сигнал BS/К_ВУ_Н, когда он активен(в логическом нуле), адрес регистра выставляется на ад1..ад12, которые и следует дешифрировать. http://www.intuit.ru/EDI/11_04...es/2-3.gif Упоминание о обмене ВВ с отображением на память попалось только в сканированном документе от DEC. Но качество его нечитаемое. Можно и просто картинку |
Сейчас на форуме |
_Patron_
Member
Откуда: Москва Всего сообщений: 146 Рейтинг пользователя: 0 Ссылка Дата регистрации на форуме: 19 дек. 2012 |
AndyTh написал: Устройство на шине Q-Bus должно принимать сигнал SYNC только при активном сигнале на линии BS. Где можно почитать об этом способе адресации? Изначально этот сигнал имел название BS7 ( Bank Select 7 ), затем стал называться BSIO ( Bank Select I/O ). На шинном разъёме к названию добавляют префикс 'B' ( Backplane ) и получается BBS7 / BBSIO. В МПИ сигнал BS7 называется или (по-старому) ВН ВВ, или (по-новому) ВУ ( полное название: К_ВУ_Н ). Пока на этой линии высокий уровень - устройство не должно принимать сигнал SYNC. |
andyTh |
NEW! Сообщение отправлено: 19 апреля 2014 23:15
Т.е. если я планировал SYNC завести на прерывание и по нему отлавливать адрес, то нужно ещё будет добавить программную или аппаратную проверку на BBS7. |
Сейчас на форуме |
_Patron_
Member
Откуда: Москва Всего сообщений: 146 Рейтинг пользователя: 0 Ссылка Дата регистрации на форуме: 19 дек. 2012 |
Профиль | Сообщить модератору
NEW! Сообщение отправлено: 20 апреля 2014 0:39 Сообщение отредактировано: 20 апреля 2014 1:51
AndyTh написал: Если полностью следовать стандарту. Т.е. если я планировал SYNC завести на прерывание и по нему отлавливать адрес, то нужно ещё будет добавить программную или аппаратную проверку на BBS7. Ведь адресных линий может быть и 16, и 18, и 22. Чтобы устройство, обрабатывающее только 12 младших битов адреса, могло понять, когда надо отвечать - без сигнала BS7 не обойтись. |
andyTh |
NEW! Сообщение отправлено: 20 апреля 2014 9:54
Стоп, но при программной обработке запросов шины я в любом случае обрабатываю оба байта. Т.е. адрес автоматически получается 16 бит. И ещё момент, на плате контроллера должна ведь быть сэмулирована ПЗУшка с загрузчиком. Она должна напрямую отображаться на память? При ёмкости набортного флеша современных контроллеров туда и RT11 влезет. |
Сейчас на форуме |
_Patron_
Member
Откуда: Москва Всего сообщений: 146 Рейтинг пользователя: 0 Ссылка Дата регистрации на форуме: 19 дек. 2012 |
Загрузчик надо отображать на незанятые адреса страницы ввода-вывода. Для универсальности - базовый адрес отображения загрузчика лучше иметь возможность задавать командой. |
Mixa
Member
Откуда: Москва Всего сообщений: 170 Рейтинг пользователя: 0 Ссылка Дата регистрации на форуме: 8 авг. 2009 |
Профиль | Сообщить модератору
NEW! Сообщение отправлено: 20 апреля 2014 17:50 Сообщение отредактировано: 20 апреля 2014 18:07
Чуть в сторону от темы, но где-то рядом.. Весеннее обострение или у дураков мысли сходятся. Сделал макет сопряжения ВМ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 очень хочется увидеть этот стенд и описание его.Тут отдельная тема не помешала бы к левому присоединяется ВМ1, который на другом стенде. |
andyTh |
NEW! Сообщение отправлено: 20 апреля 2014 19:06
Очень интересно, тем более это более "рассово правильное" решение. Процессор то родной. Какое у устройства конечное назначение? Процессор на плате будет свой или это пассивная плата с регистрами? Применить в качестве портов для IDE ВП1-033/034 не думали? |
Сейчас на форуме |
_Patron_
Member
Откуда: Москва Всего сообщений: 146 Рейтинг пользователя: 0 Ссылка Дата регистрации на форуме: 19 дек. 2012 |
Профиль | Сообщить модератору
NEW! Сообщение отправлено: 20 апреля 2014 20:00 Сообщение отредактировано: 20 апреля 2014 20:03
Mixa написал: Самые "правильные" адреса - 170200-170366 ( UNIBUS Map ), но они пересекаются с системным ПЗУ ДВК-1, поэтому надо проверять BS7. Какие адреса для IO лучше всего использовать Mixa написал: Не принципиально. как лучше выстроить цепочку прерываний (что ближе к процессору, что дальше)? |
Anonymous
Advanced Member
Откуда: Москва(Россия) Всего сообщений: 2537 Рейтинг пользователя: 0 Ссылка Дата регистрации на форуме: 22 нояб. 2011 |
Самые правильные адреса - старше 0177000, чтоб и к БК, и к УКНЦ разработка подходила. |
andyTh |
NEW! Сообщение отправлено: 20 апреля 2014 21:15
Anonymous написал: Тогда надо бы как то охватить всё многообразие существующей периферии в этом диапазоне, чтоб не сесть на уже имеющееся устройство. Например системный порт и т.д. Самые правильные адреса - старше 0177000, чтоб и к БК, и к УКНЦ разработка подходила. |
Сейчас на форуме |
Anonymous
Advanced Member
Откуда: Москва(Россия) Всего сообщений: 2537 Рейтинг пользователя: 0 Ссылка Дата регистрации на форуме: 22 нояб. 2011 |
Вот тут уже обсуждалось по адресам БК использование свободных областей http://bk0010.org/forum/?id=4873 |
palsw
Advanced Member
Откуда: Измаил_Украина Всего сообщений: 317 Рейтинг пользователя: 0 Ссылка Дата регистрации на форуме: 28 фев. 2015 |
Профиль | Сообщить модератору
NEW! Сообщение отправлено: 20 апреля 2014 22:03 Сообщение отредактировано: 20 апреля 2014 22:03
а есть смысл "подстраиваться" под все варианты пдп совместимых? Главное что бы конфликтов не было с двк железом ,а то в попытке сделать супер совместимую железку отобьете все желание у ТС что то делать вообще |
Anonymous
Advanced Member
Откуда: Москва(Россия) Всего сообщений: 2537 Рейтинг пользователя: 0 Ссылка Дата регистрации на форуме: 22 нояб. 2011 |
Под все варианты PDP - как раз не надо, надо под компы, которыми пользуются форумчане, т.е. про адреса суровых контроллеров гигантских накопителей можно с некоторой оговоркой забывать, а оговорка та заключаться должна в возможности выбора альтернативного адреса, на случай, когда потребуется подсоединить новодел к классике. Если обустроить регистры в вышеназванной области, с учетом областей, указанных в теме на форуме bk0010.org, то ни на ДВК, ни на БК/УКНЦ контроллер не будет конфликтовать ни с чем. И еще вопрос, 588ВТ2 обеспечивает 18-битовый DMA, а как адресоваться выше на Э60-1/ДВК автор продумал? |
MM
Advanced Member
Откуда: Павловский Посад Мск.обл. Всего сообщений: 3418 Рейтинг пользователя: 0 Ссылка Дата регистрации на форуме: 2 авг. 2013 |
Профиль | Сообщить модератору
NEW! Сообщение отправлено: 21 апреля 2014 1:38 Сообщение отредактировано: 21 апреля 2014 1:54
Комменты о теме. Если делать для 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 написал: Если вы сами посмотрите в текст того же DW, то увидите, что пересылка в высшие адреса идет не через подпрограммы монитора ОС, а отображением в буфер пользователя через окно с использованием PAR1, в противном случае, поставив данные на загрузку или запись, образно говоря, можно было бы пойти пить чай. Комменты о теме.Если делать для RT-11 контроллер IDE - там ДМА совсем не нужен - см. текст драйвера, например DW: . И никакие высшие адреса - тоже не нужны - RT-11 сама о всём позаботится. |
palsw
Advanced Member
Откуда: Измаил_Украина Всего сообщений: 317 Рейтинг пользователя: 0 Ссылка Дата регистрации на форуме: 28 фев. 2015 |
Профиль | Сообщить модератору
NEW! Сообщение отправлено: 21 апреля 2014 11:44 Сообщение отредактировано: 21 апреля 2014 12:08
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 |
NEW! Сообщение отправлено: 21 апреля 2014 12:07
Так схемы там же лежат в пдф. Да и я, небольшой поклонник пикада печатку открыл. Так что там всё нормально. По поводу ДМА, я в ПДП чайник, но сделать на плате контроллера второй буфер размером в блок, доступный снаружи нет никаких проблем. Желательно конечно, что бы он с первым буфером(который ПЗУ-загрузчик) и командными регистрами был одним сегментом адресов. Для простоты и скорости программного декодирования. Базовый адрес не проблема сделать "скользящим" помогите найти пустое окно такого размера. У меня сейчас другая проблема, выбрал два контроллера. Один нравится больше, но надо покупать программатор и осваивать очередную IDE. Для второго в принципе есть всё, но сам он умнее меня в три раза как минимум. Правда у него есть порт, который можно настроить как порт с аппаратным мультиплексированием A-D, что несколько упростит жизнь. Вот пока недоразобрался как он слейвом работает. |
Сейчас на форуме |
palsw
Advanced Member
Откуда: Измаил_Украина Всего сообщений: 317 Рейтинг пользователя: 0 Ссылка Дата регистрации на форуме: 28 фев. 2015 |
Профиль | Сообщить модератору
NEW! Сообщение отправлено: 21 апреля 2014 12:26 Сообщение отредактировано: 21 апреля 2014 13:16 |
_Patron_
Member
Откуда: Москва Всего сообщений: 146 Рейтинг пользователя: 0 Ссылка Дата регистрации на форуме: 19 дек. 2012 |
AndyTh написал: Буфер в контроллере не имеет никаких преимуществ перед регистром данных. Разница лишь в том, что из регистра данных драйвер копирует данные в буфер пользователя в цикле без инкремента, а из буфера - с инкрементом. сделать на плате контроллера второй буфер размером в блок |
Mixa
Member
Откуда: Москва Всего сообщений: 170 Рейтинг пользователя: 0 Ссылка Дата регистрации на форуме: 8 авг. 2009 |
palsw написал: Ну это только название такое громкое, стенд, на самом деле макетка неприличного вида типа беспаечной бредборды с генератором, 1801ВМ1, 537РУ11 и схемой заливки данных в РУ11. Но стенд, чем не стенд? очень хочется увидеть этот стенд и описание его.Тут отдельная тема не помешала бы AndyTh написал: Ну да, из-за сродства 588 к 1801 и не удержался смакетировать и посмотреть, что к чему Собственно, это и есть цель макета, пощупать, насколько элегантно стыкуется. На мой взгляд, достаточно элегантно логически, но не совсем хорошо электрически в том смысле, что IDE межплатный интерфейс по крайней мере, 588 получается наружу торчит, а это нехорошо. Но для моей конечной цели в виде автономной замкнутой минимальной системы на основе 1801ВМ1 - вполне подходит, даже есть мысль IDE припаять, а не разъемом соединять, хотя, это уже излишество. Очень интересно, тем более это более "рассово правильное" решение. Процессор то родной. ВП1-033/034 в концепцию не вписываются, DMA невозможно, а потому серьезно и не рассматривал, хотя, наверное, как-то можно их в IDE превратить, но вот и вопрос: адреса A0..A2 для IDE откуда брать? Anonymous написал: Не, в этом направлении не думал, потому что и не планировал. В принципе старшие биты на шине выставить можно из какого-нибудь дополнительного регистра, использовав один из битов расширенного адреса 588ВТ2 не по назначению, превратив его в подобие TA у ВМ3. К железу это плюс записываемый регистр с тремя состояниями (или ОК?). И еще вопрос, 588ВТ2 обеспечивает 18-битовый DMA, а как адресоваться выше на Э60-1/ДВК автор продумал? |
andyTh |
NEW! Сообщение отправлено: 21 апреля 2014 16:43
_Patron_ написал: Буфер в контроллере будет по любому, это удобно. Делать его доступным извне или нет другой вопрос. Буфер в контроллере не имеет никаких преимуществ перед регистром данных. Разница лишь в том, что из регистра данных драйвер копирует данные в буфер пользователя в цикле без инкремента, а из буфера - с инкрементом. Mixa написал: Ну как бы всё сделанное руками и шевелящееся вызывает интерес, так что ваше изделие не исключение. Довольно интересное и необычное решение просто. Ну это только название такое громкое, стенд, на самом деле макетка неприличного вида типа беспаечной бредборды с генератором, 1801ВМ1, 537РУ11 и схемой заливки данных в РУ11. Но стенд, чем не стенд? |
Сейчас на форуме |
_Patron_
Member
Откуда: Москва Всего сообщений: 146 Рейтинг пользователя: 0 Ссылка Дата регистрации на форуме: 19 дек. 2012 |
AndyTh написал: В контроллере НМД внутренний буфер контроллера "смотрит на шину" в виде регистра данных, а каждое обращение к регистру данных циклически смещает его проекцию в буфер. Буфер в контроллере будет по любому, это удобно. Делать его доступным извне или нет другой вопрос. |
borisfox
Advanced Member
Откуда: Хабаровск Всего сообщений: 946 Рейтинг пользователя: 0 Ссылка Дата регистрации на форуме: 30 июля 2008 |
BIRQ4 (К ТПР4 Н) в ДВК это запрос векторного прерывания (VIRQ), он не занимается под какое-то устройство монопольно, это разделяемая линия. Сигнал может выставить любая плата, обслужена будет ближняя к ЦП в цепочке IAKO-IAKI (ППРO-ППРI). Платы, не запрашивавшие прерывание, пропускают сигнал подтверждения дальше. Все вектора прерываний для стандартных устройств можно взять из документации - МС 1201, КМД, КЖД, КТЛК, и т.п. КЦГД использует регистры и вектора прерываний консольного терминала. Нестандартные отраслевые изделия использовали первое попавшееся свободное, кто во что горазд... А что, от варианта MSCP отказались? Зря, получился бы стОящий контроллер... Под него и загрузчик в 1201.03 есть... Да и вообще, на разработанной платформе можно было бы и другие контроллеры понаделать... Только на современной элементной базе, а то от качества советской комплектации уже аллергия, слишком со многими неизвестными получится задача. Да и в габариты полуплаты не вместится, а полную занимать расточительно... |
andyTh |
NEW! Сообщение отправлено: 5 мая 2014 9:54
Это же драйвер шины между корзиной и STM32F2. Вряд ли стмка прокачала бы своими 3,3 вольтами шину. Не делал я ничего раньше под ДВК, от того и вопросы иногда несуразные. Корзинку спаял, машину включил, а без диска грустно. Втравлю эту платку, спаяю, проверю работу подпрограммки декодировки шины, буду приставать с вопросами по "драйверу псевдо-диска HD". |
Сейчас на форуме |
borisfox
Advanced Member
Откуда: Хабаровск Всего сообщений: 946 Рейтинг пользователя: 0 Ссылка Дата регистрации на форуме: 30 июля 2008 |
Не, насчёт импортной комплектации я говорил про основную часть... А шинные формирователи можно и 531АП2 применить. Это самое простое из всей схемы... Если диск нужен всего лишь для запуска машины, то проще всего, а главное значительно дешевле, было бы купить родной КЖД от неё, или контроллер IDE разработки pribor... А если уж затеваться делать, то лучше правильный, а не очередной клон того IDE-адаптера. Просто моё мнение. |
alecv
Advanced Member
Откуда: Санкт-Петербург Всего сообщений: 5545 Рейтинг пользователя: 0 Ссылка Дата регистрации на форуме: 5 окт. 2004 |
Профиль | Сообщить модератору
NEW! Сообщение отправлено: 5 мая 2014 11:06 Сообщение отредактировано: 5 мая 2014 11:06
borisfox написал: Можно подробнее про загрузчик ? Как он на(вы)зывается ? Он только в -03 ? А что, от варианта MSCP отказались? Зря, получился бы стОящий контроллер... Под него и загрузчик в 1201.03 есть... Самый простой контроллер с точки зрения интерфейса - это КЖД (DW: ) И система команд простейшая. |
borisfox
Advanced Member
Откуда: Хабаровск Всего сообщений: 946 Рейтинг пользователя: 0 Ссылка Дата регистрации на форуме: 30 июля 2008 |
alecv написал: Да, начиная с -03 (ПЗУ РЕ2-134). Можно подробнее про загрузчик ? Как он на(вы)зывается ? Он только в -03 ? @B $DUn n - номер устройства alecv написал: Но он же жутко неэффективный, и немасштабируемый в смысле объёма дисков... Самый простой контроллер с точки зрения интерфейса - это КЖД (DW: ) И система команд простейшая. |
_Patron_
Member
Откуда: Москва Всего сообщений: 146 Рейтинг пользователя: 0 Ссылка Дата регистрации на форуме: 19 дек. 2012 |
Профиль | Сообщить модератору
NEW! Сообщение отправлено: 5 мая 2014 12:43 Сообщение отредактировано: 5 мая 2014 12:48
Родной КЖД принимает от драйвера: 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 |
NEW! Сообщение отправлено: 5 мая 2014 13:28
borisfox написал: А можно в двух словах про ваше видение правильного контроллера? А если уж затеваться делать, то лучше правильный, а не очередной клон того IDE-адаптера. Просто моё мнение. Мне вот кажется, что на плате контроллера будут только 531АП2, STM32F2хх и батарейка. Разьём(ы) не считаем. Почему не родной КЖД? Нет их в наших краях лишних. Т.е. при возможности я его таки куплю, жёсткий диск подходящий (большой и громкий) уже есть. А так, и новый контроллер освою, и под ДВК чего то сделаю полезное. |
Сейчас на форуме |
alecv
Advanced Member
Откуда: Санкт-Петербург Всего сообщений: 5545 Рейтинг пользователя: 0 Ссылка Дата регистрации на форуме: 5 окт. 2004 |
Кстати эмулятор КЖД на SD/CF было бы неплохо. Образ диска даже можно хранить на FAT в виде файла типа DWDISK0.IMG |
andyTh |
NEW! Сообщение отправлено: 5 мая 2014 13:49
alecv написал: С SD/CF всё чуть проще, чем с IDE диском. Не нужно делать 16 бит обмен. Кстати эмулятор КЖД на SD/CF было бы неплохо. Образ диска даже можно хранить на FAT в виде файла типа DWDISK0.IMG Я не против обсудить "ту" часть платы, т.е. интерфейс к диску, но пока задача номер один это сделать железу. Задача номер два - принять/передать байт с шины. Эдакое подобие 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 |
NEW! Сообщение отправлено: 5 мая 2014 15:52
Я заложил микроконтроллер со 120МГц ядром, по идее его хватит на эмуляцию шины и АТА без дополнительной ПЛИС. памятью тож более менее нормально, во флешку и загрузчик нестандартный можно поместить. Бонусом идёт разнообразная периферия типа часов, последовательного порта и прочего, но распыляться пока не хочу. Времени тоже особо лишнего нет, но есть желание попаять. Крышу рвёт от схемотехники по работе, нужна отдушина ПДП тоже не большая проблема. В любом случае данные от ДВК и данные от жёсткого диска будут храниться в буферах МК. Сделать их доступными снаружи большой проблемой не будет. Я думаю всё реально. |
Сейчас на форуме |
alecv
Advanced Member
Откуда: Санкт-Петербург Всего сообщений: 5545 Рейтинг пользователя: 0 Ссылка Дата регистрации на форуме: 5 окт. 2004 |
Непонятно, зачем тогда плата процессора и корзина. Сделать уж тогда ДВК с нуля |
andyTh |
NEW! Сообщение отправлено: 5 мая 2014 16:56
Всему своё время. |
Сейчас на форуме |
borisfox
Advanced Member
Откуда: Хабаровск Всего сообщений: 946 Рейтинг пользователя: 0 Ссылка Дата регистрации на форуме: 30 июля 2008 |
bigral написал: Возможно, на перспективу заложили, может, планировали развивать такие контроллеры, может, уже и были какие-нибудь опытные разработки... На ixbt есть ветка с участием разработчиков этих плат, можно спросить, если ещё помнят... интересно, откуда в -03 взялся загружчик DU? AndyTh написал: Такая частота ещё больше затруднит макетирование, уже появляются специальные требования к дизайну платы... Я заложил микроконтроллер со 120МГц ядром, по идее его хватит на эмуляцию шины и АТА без дополнительной ПЛИС. Я планировал уложиться максимум в 32 МГц. Да и неэстетично это, эмулировать всё программно И совершенно точно не хватит выводов ОМК, всё равно какая-то обвязка потребуется. ПЛИС тут была бы вполне уместна. ОЗУ, может, внешнее и не нужно, если в микроконтроллере есть достаточный объём. alecv написал: А смысл... Сделать уж тогда ДВК с нуля Это ещё один немаловажный останавливающий фактор - чем тратить время на такой достаточно масштабный проект, лучше что-нибудь полезное наваять. С мелочёвкой повозиться или готовые машины починить это ещё понятно, чтоб практику не потерять, но упираться во что-то серьёзное - например, я с основным и дополнительным местами работы, незаконченным ремонтом в квартире, и кучей других сторонних задач сейчас не готов... Могу подавать идеи и выступать критиком |
andyTh |
NEW! Сообщение отправлено: 5 мая 2014 17:49
borisfox написал: Грубо, два десятка ног на QBUS плюс два десятка на АТА. Так что тут всё нормально. Такая частота ещё больше затруднит макетирование, уже появляются специальные требования к дизайну платы... 120Мгц во первых - это ядро, во вторых я простил себе жизнь заказав типа оценочную плату, STM32F2 mini Сделаю плату с разьёмом и АП2, остальное на 2 колодки и вот этот отладочник мезонином. http://img34.slando.ua/images_...4-kiev.jpg в третьих дизайн такой платы меня не пугает совершенно. Старый стал, ленивый. Раньше гораздо более сложные платы утюжил. borisfox написал: Вот вот а то смотрю я на этого микроба импортного и думаю, поставить ВП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 |
Профиль | Сообщить модератору
NEW! Сообщение отправлено: 6 мая 2014 2:47 Сообщение отредактировано: 6 мая 2014 3:07
Вот вот!! золотые слова "в стиле духа времени", ведь могли же тогда люди делать это на заре 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 написал: Для данной задачи такой параллельный интерфейс будет дико медленным... поставить ВП1-033+034 на шину и к ни доцепить 8051. |
MM
Advanced Member
Откуда: Павловский Посад Мск.обл. Всего сообщений: 3418 Рейтинг пользователя: 0 Ссылка Дата регистрации на форуме: 2 авг. 2013 |
Господа, заинтересованные в контроллере IDE для ДВК - напишите, кто из Вас умеет программировать на ассеблере типа Macro-11 ( или на похожем, для ДВК/БК/УКНЦ ). Есть возможность простыми средствами решить проблему IDE для ДВК/УКНЦ . |
borisfox
Advanced Member
Откуда: Хабаровск Всего сообщений: 946 Рейтинг пользователя: 0 Ссылка Дата регистрации на форуме: 30 июля 2008 |
Я умею. Но зависит от масштабности задачи, т.к. выделить много времени нет возможности. Так простыми средствами задача же уже решена?... |
andyTh |
NEW! Сообщение отправлено: 6 мая 2014 8:58
borisfox написал: Простой микроконтроллер "того времени" просто не будет в состоянии программно обрабатывать шину с приемлемой скоростью да и всю машину затормозит прилично. Интерфейс должен быть аппаратным. Под рукой нет букваря с времянками 033 и 034, но медленный так медленный. AndyTh написал:Для данной задачи такой параллельный интерфейс будет дико медленным... поставить ВП1-033+034 на шину и к ни доцепить 8051. А без них дешифратор адресов и разбиралка адрес-данные уж больно развесиста. (Смотрим контроллер Прянишникова) Не хочу я суда килограмм микросхем. Я очень люблю большие и золотые платы, но запуститься и "пощупать" задачу имеет смысл одной микросхемой вместо десятка. (кто из желающих повторить сможет прошить РФ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 |
Профиль | Сообщить модератору
NEW! Сообщение отправлено: 6 мая 2014 18:14 Сообщение отредактировано: 6 мая 2014 18:27
AndyTh написал: Вот пример того как приходилось делать людям в то время Простой микроконтроллер "того времени" просто не будет в состоянии программно обрабатывать шину с приемлемой скоростью да и всю машину затормозит прилично.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 |
NEW! Сообщение отправлено: 6 мая 2014 22:18 Сообщение отредактировано: 6 мая 2014 23:03
bigral написал: http://www.ni.com/pdf/manuals/320006.pdf, тут применили i8291 (ВГ91) как кодирующийСначала мы художника обижаем, а потом Вот пример того как приходилось делать людям в то время bigral написал: Вот смотрим 51, он 12 тактовый. Максимальная тактовая 16Мгц, на команду тратится 1-2 цикла, т.е подёргать ножкой быстрей чем килогерц 200-300 не выйдет. Если шину эмулировать программно, всё очень грустно. А ведь нужно в буферы IDE писать/читать. Тут весь вопрос в том сможет ли mcs-51 контроллер (ну или на крайняк AVR) обеспечить MSCP декодирование и одновременно программирование IDE PIO4/ATA ? С AVR несколько веселее, но таки если ставить этот новодел, чем он лучше STMки? bigral написал: Городить плату на десятках корпусов там, где достаточно одного... Ну не знаю. И почем сразу SD? Мне больше по душе IDE диск, хотя карточка будет проще в реализации. Но вариант SOFT-эмуля когда на QBUS шине висит 100Mhz контроллер и эмулирует MSCP устройство на SD карте за счет своей бешенной скорости тоже никакой не феншуй Про один я несколько погорячился. Драйверы Qbus и драйверы IDE будут нелишними |
Сейчас на форуме |
ys05
Advanced Member
Откуда: spb Всего сообщений: 389 Рейтинг пользователя: 0 Ссылка Дата регистрации на форуме: 27 фев. 2012 |
bigral написал: Такое? интересно, откуда в -03 взялся загружчик DU? и если есть загружчик то должно было быть и железо? или просто проводами кидали DEC-овские платы на МПИ? 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 написал: Во втором томе Шахнова расписан. Вопрос, для другой задачи я хотел попробовать 033 как мультиплексор 2 входа 1 выход. Он действительно медленный? Возможно, я погорячился, и он не столь уж медленный, хотя для 16-разрядного регистра потребуется 033 + 2 x 034. К циклу добавит, возможно, нс 150-200. Попробуйте замерить, заодно и узнаем. AndyTh написал: Вместо SD карточек лучше применить CF, они совместимы с ATA по интерфейсу. И почем сразу SD? Мне больше по душе IDE диск, хотя карточка будет проще в реализации. ys05 написал: Интересная железка. А к какому устройству интерфейс? Такое? MM написал: Это клон УКНЦ-шного контроллера, или полностью другой? Плата универсального контроллера IDE, имеющего возможность работать с указанными регистрами IDE, имеется в продаже Никак не привыкну к схемам в буржуйском формате, меня эти странные УГО высекают... Чтобы программировать, нужно описание регистров и порядка работы... Документации пока никакой нет? |
MM
Advanced Member
Откуда: Павловский Посад Мск.обл. Всего сообщений: 3418 Рейтинг пользователя: 0 Ссылка Дата регистрации на форуме: 2 авг. 2013 |
Профиль | Сообщить модератору
NEW! Сообщение отправлено: 7 мая 2014 4:29 Сообщение отредактировано: 7 мая 2014 4:40
По поводу ТО мультикарты - здесь написал немного : 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 написал: К MFM-дискам. У меня есть несколько альбомов с листингами прожига ПЛМ к нему, в ужасном качестве копия - hex-коды почти неразбираемы. Аналогичный контроллер, только в другом конструктиве, в СМ1425 используется, и там два флопа им же поддерживается. На него есть альбом с описанием и структурными схемами, но нет принципиальных. И нет листингов программы управляющей под оба контроллера, увы. Когда-то MSCP я воспроизвести тоже хотел, но не собрал достаточно инфы. Потому SCSI сделал собственный и успокоился на том. Интересная железка. А к какому устройству интерфейс? MM написал: DMA в режиме хоста чип и не использует сам. Чип Cypress SL811 , все режимы, 8 бит, есть настраиваемый VIRQ, DMA - не реализовано в мультикарте MM написал: Достаточно Sync не пропускать на них, типа так т.е. при отсуствии сигнала BS7 исключить прохождение сигналов DIN and DOUT до ВП1-128, а так же в ПЗУ 1801РЕ2-326 ( или в самодельное ).http://qbus.narod.ru/sync128.jpg |
Anonymous
Advanced Member
Откуда: Москва(Россия) Всего сообщений: 2537 Рейтинг пользователя: 0 Ссылка Дата регистрации на форуме: 22 нояб. 2011 |
borisfox написал: Там простейшая такая же схема, использующая прерывания только еще, в отличие от схемы ММ. Микроконтроллер на плате используется только для начальной загрузки, DMA не влезало в примененную плиску и применена она была сугубо для защиты авторских прав при продаже контроллеров на производство, чтоб там контроллер не расклонировали. Какой там вариант- не знаю, не изучал подробно вопрос. Насколько помню, была сделана по мотивам УКНЦ-шного контроллера... borisfox написал: Тот же клуб еще в 2010 году сделал платку модуля USB с микроконтроллером, позволяющую ее как в прозрачном режиме использовать для обмена данными с устройством на усб, так и работать с fat32 на флашках средствами набортного контроллера. Но никуда проект не пошел далее, хотя 13к руб. на него было выкинуто. Как память о нем, у меня усб-контроллер на базе его для эвм Беста остался, втыкаемый в rs232. Да и для каких классов устройств USB делать поддержку? И в каком объёме? Надо сначала определиться с техническим заданием, что именно хочется получить...Теоретически можно сделать в каком-нибудь адаптере-прослойке, на микроконтроллере, в современных ресурсов дочёрта... |
borisfox
Advanced Member
Откуда: Хабаровск Всего сообщений: 946 Рейтинг пользователя: 0 Ссылка Дата регистрации на форуме: 30 июля 2008 |
А куда оно могло пойти, круг потенциальных покупателей старья-новодела ещё меньше, чем покупателей этого старья вообще... Лично мне интересны главным образом оригинальные изделия тех лет. Новодел делаю пока только для себя, в основном технологическую оснастку для стенда. Цену за простейший IDE контроллер в 10 тысяч рублей считаю завышенной, поэтому вряд ли когда приобрету. Но хороший быстрый контроллер ATA/CF с MSCP за эти деньги я бы купил. Главным образом опять же для стенда, чтоб не возиться с дискетами при ремонтах. Ну и в инструментальную машину можно, на которой разрабатывается и отлаживается софт. Только его разработка обойдётся в гораздо большую сумму, и он опять никогда не окупится при единичных продажах. Поэтому я ни на какой коммерческий успех ретрокомпьютинга не надеюсь, это чисто дотационное хобби, причём иной раз затраты выливаются в весьма немалые деньги... |
andyTh |
NEW! Сообщение отправлено: 7 мая 2014 8:25
borisfox написал: Я чуть о другом, применение SD или CF позволяет сделать весь тракт восьмибитным, что несколько упростит конструкцию и софт. Вместо SD карточек лучше применить CF, они совместимы с ATA по интерфейсу. |
Сейчас на форуме |
Anonymous
Advanced Member
Откуда: Москва(Россия) Всего сообщений: 2537 Рейтинг пользователя: 0 Ссылка Дата регистрации на форуме: 22 нояб. 2011 |
AndyTh написал: По-моему - наоборот, т.к. адрес в контроллере памяти инкрементируется на слово при блочной ПДП-пересылке, придется собирать байты в локальное FIFO с записью 8-битовой и 16-битовым чтением. Я чуть о другом, применение SD или CF позволяет сделать весь тракт восьмибитным, что несколько упростит конструкцию и софт. |
andyTh |
NEW! Сообщение отправлено: 7 мая 2014 10:19
Я почему то считал, что наоборот. Драйвер выдаёт контроллеру 8битные слова. И уже контроллер клеит из них 16битные слова данных для жёсткого диска. Есть ли более менее готовый драйвер для работы с ПДП? Насколько я понял, "стандартные" драйвера ПДП не используют. Или вообще работают на уровне поверхность-цилиндр-сектор. |
Сейчас на форуме |
borisfox
Advanced Member
Откуда: Хабаровск Всего сообщений: 946 Рейтинг пользователя: 0 Ссылка Дата регистрации на форуме: 30 июля 2008 |
AndyTh написал: А в чём смысл такого усложнения работы на 16-разрядной архитектуре? Понятно было бы, если б контроллер проектировался для 8-разрядной платформы... Драйвер выдаёт контроллеру 8битные слова. И уже контроллер клеит из них 16битные слова данных для жёсткого диска. AndyTh написал: Есть, конечно (самый, наверное, простой - драйвер КМД, "MY"). Устройств с ПДП для этой архитектуры наработано множество. Общая идея - дать контроллеру команду с параметрами, в числе которых будет физический адрес, откуда считать или куда положить данные. Контроллер в ходе её выполнения осуществляет обмен данными с этой областью памяти. Есть ли более менее готовый драйвер для работы с ПДП? Насколько я понял, "стандартные" драйвера ПДП не используют. Команда, в свою очередь, тоже может быть оформлена в виде дескриптора в памяти, который контроллер также читает методом ПДП (и иногда таким же способом помещает туда же результат выполнения). AndyTh написал: А это же вообще к способу обмена не относится. Это всего лишь метод адресации. Или вообще работают на уровне поверхность-цилиндр-сектор. |
_Patron_
Member
Откуда: Москва Всего сообщений: 146 Рейтинг пользователя: 0 Ссылка Дата регистрации на форуме: 19 дек. 2012 |
Профиль | Сообщить модератору
NEW! Сообщение отправлено: 7 мая 2014 12:04 Сообщение отредактировано: 7 мая 2014 12:08
AndyTh написал: Драйвер нужен для отображения универсального формализма запросов операционной системы ( номер блока ) в конкретный формализм запросов конкретного контроллера. Насколько я понял, "стандартные" драйвера ПДП не используют. Или вообще работают на уровне поверхность-цилиндр-сектор. Если контроллер требует сообщить ему "поверхность-цилиндр-сектор", то драйвер должен каким-то образом вычислить эти параметры на основе сообщённого ему операционной системой номера запрашиваемого блока. Собственно только для этого драйверы и нужны - потому что у каждого контроллера свой набор "параметров вызова", а операционная система знает только адрес буфера, номер блока и счётчик слов. |
andyTh |
NEW! Сообщение отправлено: 7 мая 2014 13:02 Сообщение отредактировано: 7 мая 2014 13:05
Это понятно, но я хотел схитрить и использовать какой нибудь стандартный драйвер, сэмулировав это устройство. Хотя, если знатоки ДВК помогут с драйвером и загрузчиком, то проблем нет. У меня тут пока два локальных горя. Плату с 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 |
NEW! Сообщение отправлено: 7 мая 2014 14:27
Не сильно хочется сейчас махать шапками, но тот же USB без видимых особых проблем поднимается на том же STM32, где нет таких ограничений по памяти. |
Сейчас на форуме |
borisfox
Advanced Member
Откуда: Хабаровск Всего сообщений: 946 Рейтинг пользователя: 0 Ссылка Дата регистрации на форуме: 30 июля 2008 |
AndyTh написал: Драйвер это уже мелочи, напишем, если железо будет работать. Это понятно, но я хотел схитрить и использовать какой нибудь стандартный драйвер, сэмулировав это устройство. Хотя, если знатоки ДВК помогут с драйвером и загрузчиком, то проблем нет. AndyTh написал: А что за конвертер? Второе горе может быть полезно КЦГД через переходник CGA-VGA не работает, точнее особо умные мониторы игнорят сигнал. LCD изображение не кажет вообще, хотя индикатор режимов горит так, как и при нормальном сигнале. ЭЛТ кажет бегущие кадры с надписью и через некоторое время проц переводит монитор в спячку. У меня три варианта, и каждый, что называется, хорош по-своему, какой-то лучше работает с какими-то машинами, какой-то хуже... Я также за несколько крайних лет постепенно набрал универсальные конвертеры Kramer VP-740 в достаточном количестве. |
_Patron_
Member
Откуда: Москва Всего сообщений: 146 Рейтинг пользователя: 0 Ссылка Дата регистрации на форуме: 19 дек. 2012 |
AndyTh написал: Ничто не мешает сэмулировать вообще все устройства в одном контроллере, но начать проще всего с абстрактного устройства, которое без выдумывания всяких дорожек и секторов просто читает/пишет нужный блок ( по его номеру от начала диска, который сообщила в драйвер операционка ). я хотел схитрить и использовать какой нибудь стандартный драйвер, сэмулировав это устройство |
alecv
Advanced Member
Откуда: Санкт-Петербург Всего сообщений: 5545 Рейтинг пользователя: 0 Ссылка Дата регистрации на форуме: 5 окт. 2004 |
Профиль | Сообщить модератору
NEW! Сообщение отправлено: 7 мая 2014 16:29 Сообщение отредактировано: 7 мая 2014 16:38 |
andyTh |
NEW! Сообщение отправлено: 7 мая 2014 17:24 Сообщение отредактировано: 7 мая 2014 17:32
borisfox написал: С КЦГД частота кадровая повышенная идёт, ваши платы подключали к нему? А что за конвертер? http://www.weiya.com.tw/products.asp?le=english&fid=111 вот такая плата MODEL: ACV-011 DIP переключателями можно менять режим конвертации. Удобная игрушка. Но с ДВК не пошла. Я уж думал, что SyncOnGreen мешает работе выделялки синхросмеси. Напаял LM1881, не помогло. Хотя со спектрумами и прочим подобным добром работает нормально. _Patron_ написал: Я вообще пока не выплюну в диагностический порт символ переданный от ДВК, ни на что великое не замахиваюсь. Ничто не мешает сэмулировать вообще все устройства в одном контроллере, но начать проще всего с абстрактного устройства, которое без выдумывания всяких дорожек и секторов просто читает/пишет нужный блок ( по его номеру от начала диска, который сообщила в драйвер операционка ). Будет железо, будем играться. |
Сейчас на форуме |
andyTh |
NEW! Сообщение отправлено: 7 мая 2014 17:26
alecv написал: Так не честно. Процессор должен быть большим и керамическим http://opencores.org/project,w11 |
Сейчас на форуме |
bigral
Junior Member
Всего сообщений: 133 Рейтинг пользователя: 0 Ссылка Дата регистрации на форуме: 6 мая 2012 |
ys05 написал: Жеееесть! похоже 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 написал: Отличные проекты, но понимания советской действительности не особо имеют. http://opencores.org/project,w11 А дествительность такова : Имеется корзинка ДВК с самопальными контроллерами, терпящими 500-нс цикл МПИ. Соответственно, нужна просто главная процессораная плата с 4-мя метрами ОЗУ 0-тактов, с графическим контроллером не хуже 15-ИЭ-0013, ядром именно 1801ВМ3 - 50 мгц ( не J-11, там есть специфические ограничения ) и небольшой внутренней параллельной шиной на полной частоте процессора - для опытов. Вот такая штука интересует не менее 10 чел, они вполне могут по $200 за неё выложить. |
andyTh |
NEW! Сообщение отправлено: 7 мая 2014 19:44
MM написал: Я боюсь, что только стоимость партейки из десятка 4-6 слоек + соответствующие гайки на них, без учёта всего остального далеко перевалит за 2К$. Только на уровне хобби с глубоким минусом по железу. Вот такая штука интересует не менее 10 чел, они вполне могут по $200 за неё выложить. |
Сейчас на форуме |
MM
Advanced Member
Откуда: Павловский Посад Мск.обл. Всего сообщений: 3418 Рейтинг пользователя: 0 Ссылка Дата регистрации на форуме: 2 авг. 2013 |
Насколько я понял из описания pdp2011, там многослойка тренировочная стоит $150 с плюшкой, в которую входит много чего - кроме ОЗУ. Если, например, сделать маленькие 6СПП с плюшкой и ОЗУ, а усилители МПИ и разъемы с конденсаторами ставить на ДПП размера полуплаты ДВК - может, в $250 - 300 можно уложится будет. ( 6СПП приделывать на большую ДПП на разъемах типа штыри ) Мечты ... |
andyTh |
NEW! Сообщение отправлено: 7 мая 2014 22:02
Да нет, не мечты. Мы с программером когда сигнальники осваивали, плата с DSP, памятью, шустрым АЦП и DDS делалась ЛУТом, травилась, пропаивалась... и работала... Романтика Потом сделали именно такую демоплатку с процом, памятью и необходимой обвязочкой. И уже её на штырях садили в макеты. Так что подход вполне разумен и реален. Плата то тренировочная может и стоит 150, но как минимум тиражом тысяч 10 и можно ли в ней завести проц на 50Мгц вопрос. |
Сейчас на форуме |
borisfox
Advanced Member
Откуда: Хабаровск Всего сообщений: 946 Рейтинг пользователя: 0 Ссылка Дата регистрации на форуме: 30 июля 2008 |
AndyTh написал: 60 Гц. С КЦГД частота кадровая повышенная идёт, ваши платы подключали к нему? К ДВК подключал пока только Kramer, работает нормально. Но он вообще всеядный... Остальные проверить с КЦГД пока руки не дошли, но это в планах есть. Расхлебаюсь с ревизией и ремонтом плат - займусь экспериментами, а то скопилось уже две здоровых коробки... AndyTh написал: У меня есть ихняя ACV-012. Нормально работает с УКНЦ (правда, в отдельных экземплярах не всегда хватает уровня синхросигнала, приходится немного подбирать режим выходного эмиттерного повторителя). Sync on Green без внешних примочек не поддерживает... вот такая плата MODEL: ACV-011 Также есть Cypress CM-397 и Gonbes GBS-8219. Возвращаясь к самой исходной задаче: может, просто собрать тот переходник CTI-Q22, и этим ограничиться? |
andyTh |
NEW! Сообщение отправлено: 8 мая 2014 14:33 Сообщение отредактировано: 8 мая 2014 17:51
borisfox написал: Да, крамер делает неплохое оборудование. Сегодня перепробовал 3 монитора и таки получил картинку. К ДВК подключал пока только Kramer, работает нормально. Но он вообще всеядный... Правда половина первого символа слева обрезается. И это при полностью "выкрученой" регулировке положения по горизонтали. Ну хоть так. Хотя синхра, проходящая на выход зелёного цвета подкрашивает и подшумливает картинку. СЦС эта плата не вырезает почему то. Ну или я не знаю как заставить её это делать. Добавлено позднее, недолго музыка играла обжал и распаял плоский шлейф с питанием и всеми тремя цветами, и... изображения нет. Частоты на выходе вполне себе вжашные, видео есть, а изображения нет. Чудеса короче говоря. borisfox написал: Та ну, уже не интересно. Переходник не очень то и сложный, но и НВ2 ушёл в утиль, и контроллер таки поковырять хочется. Возвращаясь к самой исходной задаче: может, просто собрать тот переходник CTI-Q22, и этим ограничиться? |
Сейчас на форуме |
alecv
Advanced Member
Откуда: Санкт-Петербург Всего сообщений: 5545 Рейтинг пользователя: 0 Ссылка Дата регистрации на форуме: 5 окт. 2004 |
AndyTh написал: Дак оттуда можно периферии надергать. Так не честно. Процессор должен быть большим и керамическим |
andyTh |
NEW! Сообщение отправлено: 8 мая 2014 17:52
Можно, но я не плисописатель. Может когда нибудь потом |
Сейчас на форуме |
andyTh |
NEW! Сообщение отправлено: 12 мая 2014 16:25 Сообщение отредактировано: 12 мая 2014 16:27 |
Сейчас на форуме |
bigral
Junior Member
Всего сообщений: 133 Рейтинг пользователя: 0 Ссылка Дата регистрации на форуме: 6 мая 2012 |
Так это ж КЦГД показал такое? В нем как я понимаю есть поддержка русского вот она и переключилась на латынь случайно, или я не о том? |
andyTh |
NEW! Сообщение отправлено: 12 мая 2014 19:10
А ведь и действительно, показал то КЦГД. Любопытный сбой. На всякий случай, клавиатура подключена не была. ПыСы отладочничек забрал. Завтра продолжу вырисовывать платку. |
Сейчас на форуме |
SKcorp
Advanced Member
Эксперт. Откуда: Leningrad, USSR Всего сообщений: 3005 Рейтинг пользователя: 0 Ссылка Дата регистрации на форуме: 28 июля 2008 |
Профиль | Сообщить модератору
NEW! Сообщение отправлено: 12 мая 2014 23:43 Сообщение отредактировано: 13 мая 2014 0:39
AndyTh написал: Просто в русский режим "терминал" не перешел. А ведь и действительно, показал то КЦГД. Любопытный сбой. На всякий случай, клавиатура подключена не была. Хотя обычно такое бывает в процессе работы, а не при старте. |
borisfox
Advanced Member
Откуда: Хабаровск Всего сообщений: 946 Рейтинг пользователя: 0 Ссылка Дата регистрации на форуме: 30 июля 2008 |
КЦГД просто запустился чуть позже, чем микроЭВМ, и начало вывода с символом переключения кодовой страницы потерялось... |
andyTh |
NEW! Сообщение отправлено: 13 мая 2014 14:31 Сообщение отредактировано: 13 мая 2014 15:06 |
Сейчас на форуме |
andyTh |
NEW! Сообщение отправлено: 15 мая 2014 17:22 Сообщение отредактировано: 15 мая 2014 18:21
Пока экспонируются шаблоны, сижу играюсь. Одна из плат КЦГД, если её установить ниже процессорной на экране кажет мигающий курсор и не реагирует на клавиатуру. Вставленная выше процессорной, работает, но приветственный адрес кажет не @ 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 |
MM
Advanced Member
Откуда: Павловский Посад Мск.обл. Всего сообщений: 3418 Рейтинг пользователя: 0 Ссылка Дата регистрации на форуме: 2 авг. 2013 |
_Patron_ написал: Троллим ?! @1000/10137 |
andyTh |
NEW! Сообщение отправлено: 15 мая 2014 20:54
_Patron_ написал: Спасибо!!! .ASECT |
Сейчас на форуме |
borisfox
Advanced Member
Откуда: Хабаровск Всего сообщений: 946 Рейтинг пользователя: 0 Ссылка Дата регистрации на форуме: 30 июля 2008 |
AndyTh написал: Однозначно что-то связанное с шиной неисправное, но скорее в плате процессора, чем в КЦГД... Одна из плат КЦГД, если её установить ниже процессорной на экране кажет мигающий курсор и не реагирует на клавиатуру. Не обязательно АП2, кстати - часты отказы и резисторных сборок НР1-3 330/680 Ом. Они конструктивно очень хрупкие, и при ударах или деформациях платы ноги отваливаются от керамической подложки с собственно резисторами. В пультовом режиме прерывания не используются и КЦГД должна работать в любом слоте. AndyTh написал: Ячейка 16-разрядная, и записано всё равно будет 177566, поэтому две 7 лишние... 001004/17777566 |
andyTh |
NEW! Сообщение отправлено: 16 мая 2014 8:43 Сообщение отредактировано: 16 мая 2014 8:48
borisfox написал: Процессорная плата одна и та же. И я её вобще не трогаю. Почему тогда с одной платой работает, а с другой нет? КЦГД прерывания может и не использовать, но вот запустится ли процессорная плата, если при стартапе скажем сигнал запроса прерывания будет активным? Просто по идее всё остальное в слотах запараллелено. Однозначно что-то связанное с шиной неисправное, но скорее в плате процессора, чем в КЦГД... borisfox написал: Пишу 177566/101 AndyTh написал:Ячейка 16-разрядная, и записано всё равно будет 177566, поэтому две 7 лишние... 001004/17777566 на экране ничего. пишу 17777566/101 на экране А. и прогу ту пускал именно в таком виде, иначе не работало. |
Сейчас на форуме |
borisfox
Advanced Member
Откуда: Хабаровск Всего сообщений: 946 Рейтинг пользователя: 0 Ссылка Дата регистрации на форуме: 30 июля 2008 |
AndyTh написал: Не запустится. Но ведь и сигнал запроса запараллелен. В цепочке только сигналы подтверждения запросов прерывания и прямого доступа к памяти. но вот запустится ли процессорная плата, если при стартапе скажем сигнал запроса прерывания будет активным? Просто по идее всё остальное в слотах запараллелено. Если сигналы подтверждения посадить на землю, то ничего плохого не будет (при условии, что в корзине нет других адаптеров, которым эти сигналы для успешного запуска нужны в неактивном состоянии), т.к. у платы микроЭВМ выводы IAKO и DMGO это просто выходы с открытым коллектором. Процессору на их состояние в пультовом режиме в общем-то всё равно... Если бы в КЦГД на землю был замкнут один из сигналов запроса прерывания, то это проявлялось бы в любом слоте, если, конечно, в корзине обрывов нет. AndyTh написал: Адрес ячейки в пультовом режиме - 22 разрядный, поэтому набирать надо полностью. Пишу 177566/101 А содержимое 16-разрядное, поэтому 17777566 никак не вписать. Можно провести эксперимент: - откроем ячейку, запишем данные, закроем: 1000/xxxxxx 177566 >ВК> - откроем ещё раз: 1000/177566 (должно быть, при исправной ЭВМ) - то же, но запишем 17777566: 1000/xxxxxx 17777566 >ВК> - откроем опять - должно быть то же самое 177566. |
andyTh |
NEW! Сообщение отправлено: 16 мая 2014 17:30
Всё, я понял о чём речь. Странно что у меня та первая программа с 16 бит адресом(в ячейке) не заработала. А заработала с 22, хотя он просто обрезался. Возможно, правда я допустил ошибку при наборе. КЦГД пару раз вытянул-вставил, прозвонил сборки на плате и... заглючил окончательно. Я было обрадовался, АП2 сдохла, проще искать. Достал осциллограф, а оно взяло и заработало. Работает в любом слоте теперь. В общем как нибудь в другой раз потыкаю. Пусть торчит в корзине пока. Плату контроллера вытравил, на выходных надеюсь попаять и буду осваивать сам микроконтроллер. |
Сейчас на форуме |
borisfox
Advanced Member
Откуда: Хабаровск Всего сообщений: 946 Рейтинг пользователя: 0 Ссылка Дата регистрации на форуме: 30 июля 2008 |
Где-то непропай, или межслойный переход рассыпался... Бывает. Ловить тяжело. Межслойные переходы в районе краевого разъёма не пропаиваются, и в них, бывает, гниёт металлизация. |
andyTh |
NEW! Сообщение отправлено: 25 июня 2014 11:39 Сообщение отредактировано: 25 июня 2014 11:40
Не прошло и месяца На работе чуть попустило, сел за проект. И для ДВК никогда ранее ничего не делал, и под АРМ тож пишу впервые. От STM32 впечатления странные, но то такое. Для упрощения своей жизни прицепился пока к адресу системного терминала. Пока режим только чтение, RPLY отрабатывает 065 на КЦГД, за что ей спасибо На частоте ядра 25Мгц (кварц просто такой впаян) спокойно отрабатывает шину. Хочу по человечески переписать обмен с QBUS, и разобраться с UART. Сделаю эдакий полный перехват системного порта. Это всё разминка перед привинчиванием IDE устройства, но тут надеюсь всё получится. ПыСы инверсия адресов и данных конечно доставляет... |
Сейчас на форуме |
andyTh |
NEW! Сообщение отправлено: 3 июля 2014 17:58
Чисто крик души... Начал писать "правильную" декодировку Qbus. Несколько дней не мог понять что происходит и искал программные глюки. Всё оказалось проще. Принёс боле менее пристойный осциллограф и увидел, что внутренние подтяжки микроконтроллера не вытягивают АП2. Фронты суперзавалены. То что я списывал на криворукость программирования, оказалось кривостью схемотехники. Вот так лень поставить пару резисторных сборок заставляет паять пару десятков резисторов. |
Сейчас на форуме |
andyTh |
NEW! Сообщение отправлено: 6 июля 2014 17:35 Сообщение отредактировано: 6 июля 2014 18:53
День добрый, заблудился в 3х соснах. Шина декодируется. Если "базовым" адресом выбираю адрес системного терминала, весь вывод на монитор чётко дублируется выводом из порта моей платы. Меняю адрес моей платы в программе и обращений к ней нет вообще. В программе поставил контрольную точку: шаг 1 Проверяем одновременное равенство 0 SYNC и BS7 ( проверяем, что на шине выставлен адрес внешнего устройства) если совпало, переходим шаг 2 Считываем адрес. если совпало, печатаем матерное слово. Вот это самое слово и не печатается, хотя если подставить адрес 177566, то дальше срабатывают проверки на DIN/DOUT и прочее. обращаться пытаюсь из терминального режима @17777570 / @BUS ERROR Адреса пробовал разные. ПыСы Умная мысля приходит опосля... Завтра по SYNC=BBS7=0 cброшу в лог все адреса и погляжу куда идут обращения. |
Сейчас на форуме |
MM
Advanced Member
Откуда: Павловский Посад Мск.обл. Всего сообщений: 3418 Рейтинг пользователя: 0 Ссылка Дата регистрации на форуме: 2 авг. 2013 |
Профиль | Сообщить модератору
NEW! Сообщение отправлено: 6 июля 2014 19:53 Сообщение отредактировано: 6 июля 2014 19:57
Позвольте поинтересоваться, а после прихода сигнала, например, 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 |
NEW! Сообщение отправлено: 6 июля 2014 20:20
Смотите, у меня по SYNC ловушка на адрес не срабатывает. Точнее на адрес 177566 работает. А на произвольный нет. Или я не умею это делать. Перечитайте, я полностью сел параллельно адресу КЦГД и проверил работу дешифратора шины. |
Сейчас на форуме |
MM
Advanced Member
Откуда: Павловский Посад Мск.обл. Всего сообщений: 3418 Рейтинг пользователя: 0 Ссылка Дата регистрации на форуме: 2 авг. 2013 | |
andyTh |
NEW! Сообщение отправлено: 6 июля 2014 23:08 Сообщение отредактировано: 6 июля 2014 23:10
Ок, зайдём с другой стороны. Что мне нужно набрать в пульте, чтобы в фазе адреса (SYNC упал в 0) на шине появилось к примеру 177570. DIN/DOUT не важно, до них дело пока не доходит. Просто чтобы сработала проверка адреса. Напомню, вывод в системный терминал перехватывается нормально. RPLY генерит железячная 065. вывод на экран чётко дублируется в отладочный порт. А вот на @17777570 / выдаётся BUS ERROR т.к. RPLY не генерится. Но и адресная защёлка не срабатывает. Если не хватает частоты программного опроса, почему работает с адресом 177566? |
Сейчас на форуме |
MM
Advanced Member
Откуда: Павловский Посад Мск.обл. Всего сообщений: 3418 Рейтинг пользователя: 0 Ссылка Дата регистрации на форуме: 2 авг. 2013 |
Профиль | Сообщить модератору
NEW! Сообщение отправлено: 7 июля 2014 0:15 Сообщение отредактировано: 7 июля 2014 0:32
В пульте ДВК-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 |
Профиль | Сообщить модератору
NEW! Сообщение отправлено: 7 июля 2014 2:51 Сообщение отредактировано: 7 июля 2014 4:31 |
andyTh |
NEW! Сообщение отправлено: 7 июля 2014 11:06 Сообщение отредактировано: 7 июля 2014 12:58
В общем нехрен по воскресеньям на работу ходить. И то, за чем пришёл (основное ) не вышло, и игрушка не получилась Мысль о недостаточности чисто программного опроса мучила весь вечер, решил всё таки чуть переделать программу. Но перед этим ещё раз проверить. И, блин, всё заработало. То, что не работало вчера. В общем, обмен по шине работает. По скорости, у меня 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 написал: Но если сам загрузчик попадает в память через посылку команд модификации ячеек в пульт ДВК - сделать это можно только через основной порт или через эмулятор клавиатуры МС 7004, подключенный к КЦГД / КСМ. грузить систему со второго порта |
andyTh |
NEW! Сообщение отправлено: 7 июля 2014 16:48 Сообщение отредактировано: 7 июля 2014 16:51
У меня "на борту" 512К флеша. Если я могу сделать доступной ячейку с адресом хххх, то так же могу и диапазон хххх-уууу в который положить тело загрузчика и выполнить его затем из адреса хххх. Ну да ладно, это такое. Прав ли я на счёт размера "диска" блочного устройства, 65536*512 = 32К? Или на количество блоков можно выделить несколько 16бит слов? На что лучше ориентироваться, прикручивая интерфейс? Есть ли где описание встроенного в 1201.03 MSCP загрузчика? |
Сейчас на форуме |
_Patron_
Member
Откуда: Москва Всего сообщений: 146 Рейтинг пользователя: 0 Ссылка Дата регистрации на форуме: 19 дек. 2012 |
Профиль | Сообщить модератору
NEW! Сообщение отправлено: 7 июля 2014 18:11 Сообщение отредактировано: 7 июля 2014 18:12
AndyTh написал: А как процессор узнает, что ему надо передать управление на этот адрес.. положить тело загрузчика и выполнить его затем из адреса хххх Именно так - это ограничение на максимальный размер диска в RT-11. 65536*512 = 32К? |
andyTh |
NEW! Сообщение отправлено: 7 июля 2014 18:47
_Patron_ написал: Я с консоли наберу xxxxG. А как процессор узнает, что ему надо передать управление на этот адрес.. _Patron_ написал: Вот тут у меня переворот мировоззрения Именно так - это ограничение на максимальный размер диска в RT-11. Нет, к своему стыду я пока особо не вникал, но вот помнятся мне диски на Э85 в 5 и 10 мег побитые на 2 куска и с RT11. По крайней мере я так считал, это была машина гораздо более старшего коллеги. ПРОС он снёс, поставил RT11 и возился с каким то специфическим софтом. От машины всех гонял. ...и что нам делать с гигабайтной флешкой... |
Сейчас на форуме |
Anonymous
Advanced Member
Откуда: Москва(Россия) Всего сообщений: 2537 Рейтинг пользователя: 0 Ссылка Дата регистрации на форуме: 22 нояб. 2011 |
Профиль | Сообщить модератору
NEW! Сообщение отправлено: 7 июля 2014 19:19 Сообщение отредактировано: 7 июля 2014 19:25
Не 32Kb, a 32Mb... AndyTh написал: Диски в 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 |
NEW! Сообщение отправлено: 7 июля 2014 20:38
Anonymous написал: А разве блок не 512 байт? Хотя что мешает ему быть 65535 слов. Тогда Не 32Kb, a 32Mb... 65535 блоков * 65535 слов * 2 байта = 8 гиг? |
Сейчас на форуме |
andyTh |
NEW! Сообщение отправлено: 7 июля 2014 20:50
MM написал: Не нужно вам морочиться с регистрами винта. Просто дайте мне номер блока и заберрите данные из буфера или регистра. Остальное я сделаю. Вот мы и подошли к неприступной скале - софту для работы с регистрами винта. |
Сейчас на форуме |
_Patron_
Member
Откуда: Москва Всего сообщений: 146 Рейтинг пользователя: 0 Ссылка Дата регистрации на форуме: 19 дек. 2012 |
AndyTh написал: 65536*512 = 32M А разве блок не 512 байт? А где будет работать сервер HX-протокола.. На борту? Там неслабые количества кода. |
andyTh |
NEW! Сообщение отправлено: 7 июля 2014 23:11
_Patron_ написал: Мда... красиво я округлил 3 порядка... 65536*512 = 32M _Patron_ написал: В общем производительности бы хватило, но этого и не нужно. Мы же с вами обсуждали, нет необходимости парсить НХ протокол там, где достаточно гонять байты. А где будет работать сервер HX-протокола.. Просто у меня стенд- почти полная ДВК. Плата вычислителя, КЦГД, клавиатура. Есть и МХ контроллер, но всё дискет не куплю. Для дальнейшей отладки надо уже работать с дисками, грузить RT11, а для этого надо вытаскивать КЦГД. А так бы я загрузчик НХ разместил у себя в памяти. Но похоже и без этого можно обойтись. Загрузчик блочного устройства есть в "биосе" 1201.03. Найти бы от него описание. Что и по каким адресам у него прописано. В смысле регистр команд, состояния и данных. MM написал: это можно сделать ещё проще, например на ту же флешку кроме файлов - образов дисков можно положить текстовый файл с конфигурацией самой платы. Можно использовать последовательный порт порт на самой плате контроллера в режиме конфигурации, можно писать константы из пультового режима самой ДВК. Вариантов куча. Или предусмотреть переключатель адресов расположения текста загрузчика и его вида ( т.к. даже минимальное ПЗУ позволяет сделать несколько вариантов ). |
Сейчас на форуме |
Anonymous
Advanced Member
Откуда: Москва(Россия) Всего сообщений: 2537 Рейтинг пользователя: 0 Ссылка Дата регистрации на форуме: 22 нояб. 2011 |
AndyTh написал: Не надо ничего вытаскивать, контакт 9 разъема Х6 позволяет перенстроить адрес КЦГД на 017776560, порт наплатный 1201.03 перенастройте на 017776570, а свой эмулируемый на stm тогда будет на адресах консоли 017777560. а для этого надо вытаскивать КЦГД. |
_Patron_
Member
Откуда: Москва Всего сообщений: 146 Рейтинг пользователя: 0 Ссылка Дата регистрации на форуме: 19 дек. 2012 |
Профиль | Сообщить модератору
NEW! Сообщение отправлено: 8 июля 2014 10:06 Сообщение отредактировано: 8 июля 2014 10:10
AndyTh написал: Если сделать ещё один шаг и сэмулировать DMA, напрямую отдавая данные в область ОЗУ - можно без всяких переделок использовать дайте мне номер блока и заберрите данные из буфера или регистра. Остальное я сделаю.драйвер псевдо-диска HD ( по-умолчанию драйвер HD взаимодействует с псевдо-контроллером через адреса 177720 и 177722 ). А если эмулировать DMA лень - надо просто добавить в код драйвера ( после подачи в контроллер команды чтения блока ) цикл пересылки блока данных между контроллером и памятью. |
andyTh |
NEW! Сообщение отправлено: 8 июля 2014 10:43
_Patron_ написал: Я ведь изначально так и предлагал. Отображать на память блок сразу. Мне это проще, в протокол обмена по QBus не нужно вписывать счётчик слов и работу с неполными блоками. Если сделать ещё один шаг и сэмулировать DMA, напрямую отдавая данные в область ОЗУ Вопрос в другом, изначально нужно как то загрузиться с диска. Т.е. либо писать свой загрузчик, либо использовать готовый. Готовый есть только начиная с 1201.03 и только для ДВК, если не ошибаюсь. |
Сейчас на форуме |
_Patron_
Member
Откуда: Москва Всего сообщений: 146 Рейтинг пользователя: 0 Ссылка Дата регистрации на форуме: 19 дек. 2012 |
Профиль | Сообщить модератору
NEW! Сообщение отправлено: 8 июля 2014 21:39 Сообщение отредактировано: 8 июля 2014 21:51
AndyTh написал: ДМА - это копирование данных изнутри контроллера в находящиеся на шине снаружи контроллера ячейки ОЗУ без участия процессора. При этом процессор блокируется, а на шине выполняется специальный цикл передачи данных изнутри контроллера в ОЗУ ( или наоборот ). Я ведь изначально так и предлагал. Отображать на память блок сразу. Здесь всё просто - загрузчик записан в нулевом блоке системного диска, а в области регистров контроллера нужно иметь небольшой код из нескольких команд, который читает 0-й блок загружаемого привода по адресу 0 и передаёт управление на адрес 0. Сам же этот начальный загрузчик надо запускать вручную из пульта по команде xxxxxx G, где хххххх - адрес кода начального загрузчика в области регистров контроллера. Вопрос в другом, изначально нужно как то загрузиться с диска. Если контроллер использует ДМА - можно сделать как в MY - иметь специальную команду "прочитать загрузчик", по которой контроллер сам помещает данные из нулевого блока диска по адресу 0. Тогда надо сначала записать в регистр данных номер загружаемого привода, потом записать в регистр команд код команды "прочитать загрузчик", а потом просто нажать "G" и управление будет передано на адрес 0, где уже находится прочитанный с привода загрузчик. |
andyTh |
NEW! Сообщение отправлено: 8 июля 2014 22:51
_Patron_ написал: А если ячейки памяти будут находиться внутри контроллера, то это уже не ДМА? ДМА это обмен данными в памяти без участия процессора. При этом блокировка процессора не обязательна. Он может работать с другими страницами или участками памяти. Ну если контроллер самой памяти это позволяет. Я предлагаю область памяти под буфер диска разместить внутри контроллера. Какая разница где будет расположена память, с которой работать драйверу. ДМА - это копирование данных изнутри контроллера в находящиеся на шине снаружи контроллера ячейки ОЗУ без участия процессора. При этом процессор блокируется, а на шине выполняется специальный цикл передачи данных изнутри контроллера в ОЗУ ( или наоборот ). Но можно остановится и на варианте не с буфером, а регистром. Т.е. программа минимум: Контроллер должен принимать следующие команды от драйвера: 1. Установить номер привода для последующей операции. 2. Установить номер блока для последующей операции. 3. Установить счётчик слов для последующей операции. 4. Выполнить операцию "ЧТЕНИЕ". 5. Выполнить операцию "ЗАПИСЬ". 6. Выполнить операцию "СООБЩИТЬ РАЗМЕР НОСИТЕЛЯ" ( в блоках ). |
Сейчас на форуме |
_Patron_
Member
Откуда: Москва Всего сообщений: 146 Рейтинг пользователя: 0 Ссылка Дата регистрации на форуме: 19 дек. 2012 |
AndyTh написал: Если контроллер эмулирует всю доступную процессору память - проблем нет. Но если на шине есть внешняя ( по отношению к контроллеру ) память - передавать туда данные контроллер должен по ДМА. А если ячейки памяти будут находиться внутри контроллера, то это уже не ДМА? |
_Patron_
Member
Откуда: Москва Всего сообщений: 146 Рейтинг пользователя: 0 Ссылка Дата регистрации на форуме: 19 дек. 2012 |
Профиль | Сообщить модератору
NEW! Сообщение отправлено: 8 июля 2014 23:18 Сообщение отредактировано: 8 июля 2014 23:22
AndyTh написал: Просто, если контроллер работает по ДМА и блокирует процессор - уже при выполнении процессором следующей команды драйвера после активации контроллера - прочитанные данные уже находятся в ОЗУ по тому адресу, который операционка сообщила драйверу, а драйвер сообщил контроллеру. Если же контроллер только "выставляет" данные в своём буфере, но сам не переправляет их в буфер пользователя в ОЗУ по тому адресу, который операционка сообщила драйверу - копировать туда данные из буфера контроллера должен сам драйвер ( после подачи в контроллер команды чтения ). Какая разница где будет расположена память, с которой работать драйверу. В текущем варианте драйвер HD сам ничего не копирует - только сообщает в контроллер адрес буфера пользователя в ОЗУ. |
andyTh |
NEW! Сообщение отправлено: 9 июля 2014 11:08
Воооот! Достаточно драйверу разместить буфер в самом контроллере, и процессору ничего делать не нужно. Данные "волшебным" образом будут меняться сами. Это очень хорошо иллюстрируется двумя видеоконтроллерами. Это 580ВГ75 и ЕМНИП 1809ВГ6. Первая перебиралки адресов не имеет и без аппаратного ДМА контроллера не работает. Не, сделать то можно, но... Второй чип счётчик адресов имеет и прекрасно работает на системах без ДМА контроллера. Более того, видел в сети проект, где процессор и видеоконтроллер питались от одного тактового генератора, но инвертированными относительно друг друга клоками. Остальные сигналы управления тоже были подогнаны по времени. В результате проц и видеоконтроллер обращались к памяти по очереди не замечая друг друга. Но это пока на том этапе, на котором я остановился, не так важно. Мне бы "стандартную" раскладку адресов командных и управляющих регистров для начала найти. В общем буду потихоньку курить паспорт от RQDX, до просветления мож толк и выйдет. |
Сейчас на форуме |
_Patron_
Member
Откуда: Москва Всего сообщений: 146 Рейтинг пользователя: 0 Ссылка Дата регистрации на форуме: 19 дек. 2012 |
Профиль | Сообщить модератору
NEW! Сообщение отправлено: 9 июля 2014 11:17 Сообщение отредактировано: 9 июля 2014 11:21
AndyTh написал: Драйвер к буферу пользователя не имеет никакого отношения. Пользователь, желающий прочитать произвольное количество слов с диска ( вплоть до 32К слов за одну операцию чтения ) передаёт операционке номер начального блока, адрес СВОЕГО буфера и счётчик слов, операционка передаёт их в драйвер, а драйвер выполняет столько запросов чтения, сколько нужно для получения от контроллера всех запрошенных пользователем слов и аккуратно укладывает результаты всех этих запросов в буфер пользователя. Достаточно драйверу разместить буфер в самом контроллере, и процессору ничего делать не нужно. Данные "волшебным" образом будут меняться сами. Некоторые контроллеры считывают за один раз не больше 64 слов, некоторые - не больше 256 слов, псевдо-контроллер HD передаёт любое количество слов, но благодаря наличию драйверов - пользователь может по единому алгоритму получить в СВОЙ буфер любое количество слов от любого контроллера. Если контроллер поддерживает ДМА - он сам копирует данные из своего буфера в буфер пользователя, а если нет - это делает драйвер. |
andyTh |
NEW! Сообщение отправлено: 9 июля 2014 13:28
_Patron_ написал: Это понятно. Просто я сейчас физически не смогу этого сделать. Аппаратно у меня ДМА не разведен и честное ДМА я не сделаю в пределах этой макетки. Но сделать прозрачным в доступе процессору сегмент адресов на своей плате я могу. Для процессора это будет просто кусок памяти не на основной плате, но доступный точно так же как и основное ОЗУ. Эдакий аналог двухпортовой памяти. Если контроллер поддерживает ДМА - он сам копирует данные из своего буфера в буфер пользователя, а если нет - это делает драйвер. |
Сейчас на форуме |
_Patron_
Member
Откуда: Москва Всего сообщений: 146 Рейтинг пользователя: 0 Ссылка Дата регистрации на форуме: 19 дек. 2012 |
Профиль | Сообщить модератору
NEW! Сообщение отправлено: 9 июля 2014 14:07 Сообщение отредактировано: 9 июля 2014 14:09
AndyTh написал: Поскольку драйвер HD готов запросить и получить за один раз до 32К слов данных, то единственный адекватный способ передать их все драйверу за одну операцию чтения диска - выдавать их по одному через регистр данных, сменяя на следующее после каждого шинного цикла чтения при операции чтения и цикла записи при операции записи. сделать прозрачным в доступе процессору сегмент адресов на своей плате я могу Если не различать тип цикла при доступе к регистру данных, то на некоторых процессорах могут появиться проблемы с командой CLR, которая выдаёт сначала цикл чтения, а потом цикл записи. |
andyTh |
NEW! Сообщение отправлено: 9 июля 2014 15:46 Сообщение отредактировано: 9 июля 2014 15:50
Ну, считать за одно обращение к диску больше чем кластер, я по идее не смогу. В смысле используя готовые библиотеки. А это те же 512 байт, бОльшие кластера вряд ли имеет смысл делать. Но, я тоже думаю имеет смысл сделать для начала просто регистр. Тогда я у себя делаю так: Базовый адрес ххх. Положить суда или часы в BCD или доп. порт. или служебную инфу ххх+2 регистр номера привода (запись/чтение) ххх+4 регистр ёмкости привода в блоках (чтение) ххх+6 регистр номера блока (запись) ххх+8 регистр счётчика слов (запись/чтение) ххх+10 регистр команд (запись/чтение) ххх+12 регистр данных (запись/чтение) Опять же таки, где то же есть эта раскладка по адресам для "контроллера общего применения" Под что то же писан загрузчик встроенный в МС1201.03. |
Сейчас на форуме |
_Patron_
Member
Откуда: Москва Всего сообщений: 146 Рейтинг пользователя: 0 Ссылка Дата регистрации на форуме: 19 дек. 2012 |
AndyTh написал: Если чтение/запись кластера занимает больше времени, чем тайм-аут шины, то надо добавить в контроллер регистр статуса, рапортующий о готовности очередного кластера. Ну, считать за одно обращение к диску больше чем кластер, я по идее не смогу. |
andyTh |
NEW! Сообщение отправлено: 9 июля 2014 21:25
Поскольку и в регистре номера накопителя и в регистре команд будет занято по одному байту, второй байт можно выделить под статус. Хотя и целое слово довыделить не проблема. |
Сейчас на форуме |
borisfox
Advanced Member
Откуда: Хабаровск Всего сообщений: 946 Рейтинг пользователя: 0 Ссылка Дата регистрации на форуме: 30 июля 2008 |
Сделайте совместимым по регистрам с КЖД, по крайней мере с загрузчиком и драйвером проблем не будет... |
andyTh |
NEW! Сообщение отправлено: 10 июля 2014 6:19
Так ведь потеряется магия блочного устройства... Рискнуть и покопать 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 |
NEW! Сообщение отправлено: 10 июля 2014 8:45
Хотелось бы увидеть раскладку регистров от DB. Это же и есть встроенный MSCP? В чём сложность MSCP по сравнению с тем же КЖД? MSCP отдаёт номер блока напрямую, в случае ЖД его надо будет вычислить по головкам/цилиндрам. Реализация контроллера? Возможно, но пока трудностей не видится ни с тем ни с другим. |
Сейчас на форуме |
_Patron_
Member
Откуда: Москва Всего сообщений: 146 Рейтинг пользователя: 0 Ссылка Дата регистрации на форуме: 19 дек. 2012 |
Профиль | Сообщить модератору
NEW! Сообщение отправлено: 10 июля 2014 14:42 Сообщение отредактировано: 10 июля 2014 18:01
borisfox написал: Так дековцы называли RK03/05 DK - ? AndyTh написал: Здесь есть тонкий момент, заключающийся в том, что контроллер должен обслуживать обращения к своему регистру статуса вне зависимости от фазы выполнения управляющей программы контроллера. Т.е. если (например) при чтении кластера контроллер перестаёт обслуживать шину - наличие эмулируемого регистра статуса ничем не поможет, потому что при обращении к нему произойдёт такой же тайм-аут, как и при обращении к эмулируемому регистру данных. Поскольку и в регистре номера накопителя и в регистре команд будет занято по одному байту, второй байт можно выделить под статус. Хотя и целое слово довыделить не проблема. В КЖД на такой случай выделен специальный аппаратный регистр. Перед тем, как процессор КЖД перестаёт обслуживать шину МПИ и отвечать на обращения по МПИ к эмулируемым регистрам - он снимает в аппаратном регистре бит готовности. При включении питания бит готовности в аппаратном регистре автоматически сбрасывается и устанавливается процессором после завершения программы начального тестирования. Старший бит регистра статуса или регистра команд нужно выделить под признак ошибки. Если драйвер передаёт номер блока, которого нет в подключенном образе, или номер привода, к которому не подключен образ - контроллер может сразу сообщить об ошибке или сделать это после подачи кода команды. |
borisfox
Advanced Member
Откуда: Хабаровск Всего сообщений: 946 Рейтинг пользователя: 0 Ссылка Дата регистрации на форуме: 30 июля 2008 |
AndyTh написал: Нет, MSCP это DU, а что они подразумевали под DB, я не знаю... Хотелось бы увидеть раскладку регистров от DB. Это же и есть встроенный MSCP? AndyTh написал: Протокол достаточно навороченный, с очередями команд в памяти. Много разных команд с развесистым списком параметров. Активно завязан на ПДП для передачи как дескрипторов команд, так и данных. В Вашем случае работа с ПДП не поддерживается, так что отпадает как минимум по этой причине... В чём сложность MSCP по сравнению с тем же КЖД? MSCP отдаёт номер блока напрямую, в случае ЖД его надо будет вычислить по головкам/цилиндрам. Реализация контроллера? Возможно, но пока трудностей не видится ни с тем ни с другим. Начать можно, например, со спецификаций отсюда: http://www.textfiles.com/bitsavers/pdf/dec/mscp/. Также можно взять описание любого MSCP-совместимого контроллера посовременнее, например, DEC RQDX3, RQDX4, или дисковые контроллеры Dilog/Emulex... посмотреть, как спецификацию реализовывали в реальных железках... |
andyTh |
NEW! Сообщение отправлено: 10 июля 2014 20:59
borisfox написал: Вот же ... Мда. Доки почитаю, спасибо огромное! Меня на неделю отправляют в ссылку, так что надеюсь почитать время будет. Протокол достаточно навороченный, с очередями команд в памяти. Много разных команд с развесистым списком параметров. Активно завязан на ПДП для передачи как дескрипторов команд, так и данных. В Вашем случае работа с ПДП не поддерживается, так что отпадает как минимум по этой причине... Т.е или свой драйвер MSCP, или КЖД... Будем подумать. |
Сейчас на форуме |
andyTh |
NEW! Сообщение отправлено: 10 июля 2014 21:02
_Patron_ написал: Судя по всему процу на КЖД катастрофически не хватало скорости. И обработка шины в реалтайме была буквально на грани. В КЖД на такой случай выделен специальный аппаратный регистр. Перед тем, как процессор КЖД перестаёт обслуживать шину МПИ и отвечать на обращения по МПИ к эмулируемым регистрам - он снимает в аппаратном регистре бит готовности. При включении питания бит готовности в аппаратном регистре автоматически сбрасывается и устанавливается процессором после завершения программы начального тестирования. У меня железного доп регистра нет. Так что особой разницы регистр или бит функционально тоже нет. |
Сейчас на форуме |
borisfox
Advanced Member
Откуда: Хабаровск Всего сообщений: 946 Рейтинг пользователя: 0 Ссылка Дата регистрации на форуме: 30 июля 2008 |
В КЖД процессор, по сути, выполняет роль конечного автомата с микропрограммным управлением. Содержимое двух ПЗУ реализует диаграмму состояний, третьего - выдачу управляющих сигналов. Доступ к регистрам был возможен только во вполне определённых состояниях. Разряд 15 ("ЗАНЯТ") регистра РСНУ (состояния/начальной установки) как раз и показывал, когда контроллер свободен (регистры доступны), а когда нет... Сейчас так извращаться, наверное, излишне. Если реализовывать КЖД-совместимый контроллер, то можно защёлку и дешифрацию адреса регистров выполнять аппаратно, и при совпадении генерировать прерывание на микроконтроллер, по которому он будет уходить на подпрограмму обслуживания доступа к ним. |
Anonymous
Advanced Member
Откуда: Москва(Россия) Всего сообщений: 2537 Рейтинг пользователя: 0 Ссылка Дата регистрации на форуме: 22 нояб. 2011 |
borisfox написал: DB это RP04/RP05/RP06 Нет, MSCP это DU, а что они подразумевали под DB, я не знаю... У меня из 134й все ненужное выкинуто, оставил только загрузчики с ide, scsi, dw, my и spi. Если интересно, могу выложить вечером. |
andyTh |
NEW! Сообщение отправлено: 11 июля 2014 8:18 Сообщение отредактировано: 11 июля 2014 8:28
У меня работа с шиной полностью программная. Скорости более чем хватает. Да и полного аналога КЖД не выйдет. На готовой платке ног оказалось маловато и на прерывания не хватило. Можно пожертвовать "железным" кварцем и перейти на внутренний генератор. Тогда высвободятся ещё 2 ноги. |
Сейчас на форуме |
borisfox
Advanced Member
Откуда: Хабаровск Всего сообщений: 946 Рейтинг пользователя: 0 Ссылка Дата регистрации на форуме: 30 июля 2008 |
Anonymous написал: Теоретически интересно, а практически заливать пока всё равно нечем, я программатор так ещё и не купил... Если интересно, могу выложить вечером. AndyTh написал: И захват адреса программно? А не расточительно ли это - ловить каждый цикл обмена шины, а не только свои?... Ведь контроллеру ещё и с диском обмениваться когда-то надо... У меня работа с шиной полностью программная. Скорости более чем хватает. |
andyTh |
NEW! Сообщение отправлено: 11 июля 2014 9:08
Ядро контроллера 120МГц. Порты тактируются ядро/2. всё 16бит слово читается за 1 раз. Может и расточительно, но хватает же. У нас задача то выставить сигналы управления да переложить байты из одного порта во второй. |
Сейчас на форуме |
Anonymous
Advanced Member
Откуда: Москва(Россия) Всего сообщений: 2537 Рейтинг пользователя: 0 Ссылка Дата регистрации на форуме: 22 нояб. 2011 |
borisfox написал: Теоретически интересно, а практически заливать пока всё равно нечем, я программатор так ещё и не купил...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 |
NEW! Сообщение отправлено: 31 июля 2014 17:11
На днях столкнулся с маленькой проблемкой. Посеял картридер, умеющий компактфлеш. И как всегда, срочно понадобилось почитать/пописать флешку. Честно говоря мне стоило заметных телодвижений найти такой картридер по знакомым. Тогда как читалка SD карточек разве что в зубочистку не встроена... Вот мысль крамольная посетила, нужен ли на плате именно IDE интерфейс? Или в принципе непринципиально, если контроллер будет работать с SDшки. Хочется услышать мысли со стороны. |
Сейчас на форуме |
Anonymous
Advanced Member
Откуда: Москва(Россия) Всего сообщений: 2537 Рейтинг пользователя: 0 Ссылка Дата регистрации на форуме: 22 нояб. 2011 |
Для системы ваш контроллер все равно будет блочным устройством с произвольным доступом, интерфейс и тип накопителя, и уровень, на котором микроконтроллер будет взаимодействовать с накопителем, никакого значения для ДВК не играет. Для ДВК главное сказать контроллеру номер блока и количество слов, и эти слова переслать, куда и как - задача микроконтроллера, а не ОС ДВК. Делайте хоть на РФ2, с программным поджигом ламп стирания. |
<<Назад Вперед>> | Страницы: 1 2 3 4 5 ... .. 12 13 14 15 16 17 | Печать |
Полигон-2 » Другие архитектуры » Использование НМД2 в ДВК |
1 посетитель просмотрел эту тему за последние 15 минут |
В том числе: 1 гость, 0 скрытых пользователей |
Последние | |
[Москва] LIQUID-Акция. Сливаются разъемы CF МС7004 и 7004А на AT и XT Пайка термотрубок Проммать s478 PEAK 715VL2-HT ( Full-Size SBC) Подскажите по 386 материке по джамперам. |
Самые активные 5 тем | |