User Tag List

Страница 1 из 2 12 ПоследняяПоследняя
Показано с 1 по 10 из 714

Тема: Контроллер псевдодиска на SD-карте для ДВК/ УКНЦ / PDP-11 original + Ethernet

Комбинированный просмотр

Предыдущее сообщение Предыдущее сообщение   Следующее сообщение Следующее сообщение
  1. #1

    Регистрация
    11.09.2009
    Адрес
    Москва
    Сообщений
    4,805
    Спасибо Благодарностей отдано 
    9
    Спасибо Благодарностей получено 
    147
    Поблагодарили
    78 сообщений
    Mentioned
    16 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от AFZ Посмотреть сообщение
    Но HD работает мгновенно - ему дали команду, и на следующий такт виртуального процессора данные появились в памяти.
    Ну, вот прямо сейчас я уже сделал 3-ю версию контроллера HD, где в CSR добавлен бит разрешения прерываний 0100, при установке которого контроллер начинает выполнять команды чтения и записи с задержкой 100 мкс, во время которой бит READY сброшен и после которой происходит прерывание по вектору 0164.

    Сейчас напишу для этого контроллера драйвер, проверяющий бит READY в CSR перед каждым обращением к любому регистру - и всего делов. Главная особенность использования прерываний контроллером HD - они возникают только в двух случаях: 1) после начала выполнения команды чтения; 2) после начала выполнения команды записи. Все остальные команды выполняются "мгновенно", т.е. пока драйвер идёт ждать появления бита READY в CSR - контроллер уже готов сообщить в регистре данных размер подключенного образа или принять в регистре данных значения номера устройства, номера блока, адреса буфера или счётчика слов.

  2. #1
    С любовью к вам, Yandex.Direct
    Размещение рекламы на форуме способствует его дальнейшему развитию

  3. #2

    Регистрация
    13.12.2013
    Адрес
    г. Санкт-Петербург
    Сообщений
    3,072
    Спасибо Благодарностей отдано 
    37
    Спасибо Благодарностей получено 
    81
    Поблагодарили
    65 сообщений
    Mentioned
    4 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Patron Посмотреть сообщение
    Ну, вот прямо сейчас я уже сделал 3-ю версию контроллера HD
    А как будет реагировать контроллер если "карту SD"* вытащить и вставить другую?

    *В эмуляторе это будет образ HD.

  4. #3

    Регистрация
    11.09.2009
    Адрес
    Москва
    Сообщений
    4,805
    Спасибо Благодарностей отдано 
    9
    Спасибо Благодарностей получено 
    147
    Поблагодарили
    78 сообщений
    Mentioned
    16 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от MiX Посмотреть сообщение
    А как будет реагировать контроллер если "карту SD"* вытащить и вставить другую?
    *В эмуляторе это будет образ HD.
    Образ HD - это файл на карте SD, смонтированный в виртуальный привод. Вытащить карту SD при работающем контроллере, это как вытащить флешку из гнезда USB, с которой в эмуляторе смонтирован образ - тогда до размонтирования образа - все обращения чтения и записи будут давать аппаратную ошибку, которую эмулятор контроллера HD возвращает драйверу в старшем бите CSR.

    - - - Добавлено - - -

    Цитата Сообщение от AFZ Посмотреть сообщение
    Причем отдать один бит в МПИ почти ничего не стоит - та самая 8-ножка содержит два ЛЭ, один отдаст СИП, второй свободен, цена вопроса - лишняя пара проводков на макетке или дорожек на боевой плате.
    Нет смысла отдавать биты в "режиме заглушки", потому что при работе контроллера с регистрами - в CSR всегда есть какой-то установленный бит и только при "режиме заглушки" все биты сброшены - это позволяет детектировать режим заглушки одной командой TST (R1). Когда надо проверять какой-то бит - команда становится длиннее на одно слово ( маску этого бита ). Зачем такие усложнения платы и кода, когда без них гораздо лучше.

  5. #4

    Регистрация
    13.12.2013
    Адрес
    г. Санкт-Петербург
    Сообщений
    3,072
    Спасибо Благодарностей отдано 
    37
    Спасибо Благодарностей получено 
    81
    Поблагодарили
    65 сообщений
    Mentioned
    4 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Patron Посмотреть сообщение
    Образ HD - это файл на карте SD
    Во как!
    Значит контроллер должен поддерживать файловую систему (FAT16/32) и распаковывать образ DSK.

    Цитата Сообщение от Patron Посмотреть сообщение
    Вытащить карту SD при работающем контроллере, это как вытащить флешку из гнезда USB,
    Вот по этому и был задан вопрос. Значит карту нельзя вынимать на протяжении всего сеанса, вплоть до выключения компьютера.

  6. #5

    Регистрация
    30.11.2015
    Адрес
    г. Самара
    Сообщений
    7,507
    Спасибо Благодарностей отдано 
    344
    Спасибо Благодарностей получено 
    714
    Поблагодарили
    596 сообщений
    Mentioned
    13 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от MiX Посмотреть сообщение
    Значит контроллер должен поддерживать файловую систему (FAT16/32)
    Насколько я успел посмотреть, уже есть готовые библиотеки.
    Цитата Сообщение от MiX Посмотреть сообщение
    распаковывать образ DSK
    ? Считаем смещение в файле образа (если хитрые, типа .dw .rd .dx .dy - просто немного хитрее смещение считается) и дальше читаем или пишем затребованное количество байт (при записи добивая нулями до следующей кратной 512 байтам границе). Никакой распаковки упаковки - файловую систему поддерживает система на ДВК

  7. #6

    Регистрация
    11.09.2009
    Адрес
    Москва
    Сообщений
    4,805
    Спасибо Благодарностей отдано 
    9
    Спасибо Благодарностей получено 
    147
    Поблагодарили
    78 сообщений
    Mentioned
    16 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от AFZ Посмотреть сообщение
    В моем варианте реализации DMA - это лишние 6 шинных драйверов для A16-21, второй комплект шинных драйверов для управляющих сигналов (СИА, СИП, ВВОД, ВЫВОД и т.д.). Если делать без ДМА, то на прием с МПИ хватит 1/6-й простого 1533ЛН1, на передачу - половины 155ЛА18 или похожей мощной восьминожки с другой логической функцией. А для ДМА их придется ставить двусторонними, или ставить второй комплект с обратной функцией. Да, увеличивается количество рассыпухи, причем заметно.
    Без ДМА придётся делать пакетную эмуляцию ДМА ( когда передача "блока ДМА" начинается с появления бита 040000 в CSR и заканчивается появлением бита READY в CSR, а в промежутке - сначала в регистре данных выдаётся счётчик передаваемых слов, а потом все слова пакета со скоростью шины, т.е. без проверки готовности для каждого отдельного слова ).

    Но при такой реализации "псевдо ДМА" - минимальный загрузчик, отправляющий команду "передать блок 0 устройства 0" и считывающий из регистра данных пакет "псевдо ДМА" - будет выглядеть так:

    Код:
    Error:				; При ошибке - повторить чтение.
    	Mov	#177720, R1	; HD CSR -> R1
    	Mov	#10,    (R1)	; 010 == Read Boot
    	Tst	(R1)		; Блок "псевдо ДМА" готов?
    	BEq	.-4.		; Нет..
    	Tst	(R1)+		; Была ошибка чтения?
    	BMi	Error		; Да..
    	Mov	(R1), R0	; Word Count -> R0 
    	Clr	R2		; Buff Addr  -> R2
    	Mov	(R1), (R2)+	; Читаем слова блока
    	SOB	R0, .-4.	; Все слова переданы?
    	Clr	PC		; Переходим на адрес 000000

    Если часть предварительных операций выполнить вручную - минимальный код загрузчика в ОЗУ ДВК будет таким:

    Код:
    	Mov	(R1), R0	; Word Count -> R0 
    	Mov	(R1), (R2)+	; Читаем слова блока
    	SOB	R0, .-4.	; Все слова переданы?
    	Clr	PC		; Переходим на адрес 000000

    При работе с пульта ДВК это будет выглядеть так:

    Код:
    *****  ДОСТУПНОЕ  ОЗУ  - 256 K *
    @ 001000
    @R1/001122 177722
    R2/000000
    @R7/001000 10000
    @0010000/000000 11100
    00010002/000000 11122
    00010004/000000 77002
    00010006/000000 5007
    @17777720/040200 10
    @17777720/000000 /040000
    @P
    HD Boot-I-Cold boot..
     
    HD (177720) disk driver  v4.0  2017
    SL V08.00 [SW] Сторожевых С.В. 1988
    KZ V01.00 (C) ВЦ МИЭТ,  НОЯБРЬ 1987
     
    RT-11SB (Y) V05.07

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

    Текущие значения номера привода, номера блока и счётчика слов сохраняются между операциями и обнуляются по сигналу шины INIT ( команда CPU = RESET ).

    - - - Добавлено - - -

    Сигнал INIT и любая запись в CSR на этапе чтения/записи пакета "псевдо ДМА" - принудительно завершают выполнение текущей команды и переводят контроллер в режим приёма команды. При этом, в случае записи в CSR - выполнение текущей команды завершается с установкой бита ошибки в CSR и кода ошибки IE_ABT = 0375 в регистре данных.

    - - - Добавлено - - -

    Чтобы операционка могла сбросить операцию на "этапе заглушки" - можно добавить в заглушку возможность приёма сигналов DOUT и INIT с установкой флагов для контроллера. Тогда, при выходе из "режима заглушки" контроллер при наличии флага INIT или флага записи в CSR - отменяет посылку прерывания, отключает прерывания, а всё остальное делает так же, как в случае приёма INIT или записи в CSR на этапе обмена пакетами.
    Последний раз редактировалось Patron; 26.09.2017 в 01:14.

  8. #7

    Регистрация
    02.03.2015
    Адрес
    г. Караганда, Казахстан
    Сообщений
    2,321
    Спасибо Благодарностей отдано 
    35
    Спасибо Благодарностей получено 
    225
    Поблагодарили
    177 сообщений
    Mentioned
    17 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Patron Посмотреть сообщение
    Когда надо проверять какой-то бит - команда становится длиннее на одно слово ( маску этого бита ).
    Если этот бит - не Д15.

    Цитата Сообщение от MiX Посмотреть сообщение
    Значит контроллер должен поддерживать файловую систему (FAT16/32) и распаковывать образ DSK.
    Именно. Я давно продвигаю основной тезис этого дела: псевдодиск PDP-11 на современном носителе должен быть файлом для писюка. Вне зависимости от типа носителя, будь то простая USB-флешка, SD-карточка, винчестер, да вообще, хоть SSD-шник. Чтобы сняв этот носитель и подключив его к писюку можно было нормальными писюшными средствами свободно манипулировать файл-образами. Архивировать, выкладывать в Нет, заливать на носитель свежеукачанные из Нета файл-образы и пользовать их на ДВК. А что делать, допустим, с УКНЦ-шным WD? Правильно, без специальной программы (которой нет), ничего. Разве что посекторную копию сделаешь...

    А распаковки файл-образы .dsk не требуют, этим будет заниматься ОС, работающая на ДВК, точно так же, как это делается на эмуляторе.

    Цитата Сообщение от Patron Посмотреть сообщение
    Чтобы операционка могла сбросить операцию на "этапе заглушки" - можно добавить в заглушку возможность приёма сигналов DOUT и INIT с установкой флагов для контроллера. Тогда, при выходе из "режима заглушки" контроллер при наличии флага INIT или флага записи в CSR - отменяет посылку прерывания, отключает прерывания
    А вот об этом я забыл... Спасибо.

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

    В частности, если адресную часть цикла МПИ обрабатывать аппаратно, можно попробовать обрабатывать запросы МПИ в режиме прерываний. Программная реализация этого дела предусматривают строго синхронную "прополку" (Polling), поскольку нельзя пропустить фронт СИА, да и не сдюжит 72-МГц процессор прерываний с частотой 1 МГц - это же, максимум, 72 команды от одного прерывания до другого - ведь нужно и сохраниться, и в конце восстановиться, и проверить, к нам обращаются, или нет, и это по каждому обращению к МПИ, включая память. Так и на основную программу времени не останется. А вот если адрес зафиксируется аппаратно, причем "наш" адрес, на чужие не реагировать, то вполне можно и СИП притормозить, если что... Если это сойдется, то, может быть и отключать регистры не понадобится. Но, опять же, это большое количество рассыпухи, что очень не хочется. В общем, буду прикидывать схемы и думать...

    - - - Добавлено - - -

    Цитата Сообщение от MM Посмотреть сообщение
    Т.е. все эти шевеления с ФАТ - программно в драйвере.
    Нет никаких там ФАТов. По-простому, сектор 0-0-1 - блок 0, 0-0-2 - блок 1 и т.д. А сделать FAT в драйвере PDP-11... Известное творение г-на Чана - FatFS, при всех его оптимизациях и отсечениях всего, сколь-нибудь избыточного, занимает на любой платформе не менее 10=12К, отдать столько на драйвер - так ведь для работы места не останется...
    Кто мешает тебе выдумать порох непромокаемый? (К.Прутков, мысль № 133)

  9. #8

    Регистрация
    13.12.2013
    Адрес
    г. Санкт-Петербург
    Сообщений
    3,072
    Спасибо Благодарностей отдано 
    37
    Спасибо Благодарностей получено 
    81
    Поблагодарили
    65 сообщений
    Mentioned
    4 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от AFZ Посмотреть сообщение
    А распаковки файл-образы .dsk не требуют, этим будет заниматься ОС, работающая на ДВК, точно так же, как это делается на эмуляторе.
    Распаковкой DSK занимается ОС работающая на ДВК только одного образа с одного диска. Если на SD карте несколько образов, то контроллер должен распределить на каком диске какой образ. Для этого делаются маркеры в имени файла.
    Например: HD000.DSK, HD001.DSK, HD001.DSK... итд.

    Более того, какой размер должен быть у образа? 32Мб?
    Тогда нужна утилита для форматирования из под ОС на ДВК.
    И не забудьте про блокиратор записи на SD карте.

  10. #9

    Регистрация
    11.09.2009
    Адрес
    Москва
    Сообщений
    4,805
    Спасибо Благодарностей отдано 
    9
    Спасибо Благодарностей получено 
    147
    Поблагодарили
    78 сообщений
    Mentioned
    16 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от AFZ Посмотреть сообщение
    Если этот бит - не Д15.
    Старший бит CSR у всех контроллеров означает: команда завершена с ошибкой.

    - - - Добавлено - - -

    Цитата Сообщение от MiX Посмотреть сообщение
    Например: HD000.DSK, HD001.DSK, HD001.DSK... итд.
    Лучше: 000.исходное имя образа, 001.исходное имя образа - тогда и пользователь, и контроллер смогут легко управлять монтированием.

    - - - Добавлено - - -

    Цитата Сообщение от AFZ Посмотреть сообщение
    А что делать, допустим, с УКНЦ-шным WD? Правильно, без специальной программы (которой нет), ничего. Разве что посекторную копию сделаешь...
    DSK-плагин для TC поддерживает упаковку/распаковку прямых и инверсных образов HDD UKNC на DSK-образы разделов, а также прямую работу с содержимым разделов HDD UKNC в образе HDD, если эти разделы содержат файловые системы, поддерживаемые плагином.

  11. #10

    Регистрация
    13.12.2013
    Адрес
    г. Санкт-Петербург
    Сообщений
    3,072
    Спасибо Благодарностей отдано 
    37
    Спасибо Благодарностей получено 
    81
    Поблагодарили
    65 сообщений
    Mentioned
    4 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Patron Посмотреть сообщение
    HD (177720) disk driver v4.0 2017
    Драйвером не поделитесь? У меня версия 1.5.

Страница 1 из 2 12 ПоследняяПоследняя

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Похожие темы

  1. Ответов: 116
    Последнее: 20.01.2024, 17:40
  2. Ответов: 327
    Последнее: 03.12.2019, 22:49
  3. Контроллер IDE PATA для QBUS (Э-60, ДВК)
    от Жека:) в разделе Новодел
    Ответов: 4
    Последнее: 04.05.2012, 14:40

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •