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

Полигон-2

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

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

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

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

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

<<Назад  Вперед>> Страницы: 1 2 3 4 5 ... 10 11 12 13 14 * 15 16 17
Печать
 
_Patron_
Member


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


Ссылка


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

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

На борту?

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

Ссылка

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


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

На борту?

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


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


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


Ссылка


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


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


Ссылка


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

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

Ссылка

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


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


Ссылка


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

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

Ссылка

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

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

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

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


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


Ссылка


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


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


Ссылка


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

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

Ссылка

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

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

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

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

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